Я тут написал код, вроде все правильно но компилятор c++ 14 выводит:
error: 'vector' does not name a type
In function 'int main()':
error: 'min' was not declared in this scope
Код:
#include<bits/stdc++.h>
#include<vector>
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const ll N = 1e5 + 5;
const ll MAX = 2e5 + 123;
const ll MOD = 1e9 + 7;
ll n, s, mn = MAX, a[ N ];
vector< ll > v;
int main()
{
scanf( "%I64d", &n );
for( ll i = 1; i <= n; i ++ )
{
scanf( "%I64d", &a[ i ] );
s += a[ i ];
mn = min( mn, a[ i ] );
}
if( a[ 1 ] < s / 2 || mn > a[ 1 ] / 2 )
return printf( "0\n0" ), 0;
for( ll i = 2; i <= n; i ++ )
{
if( a[ 1 ] / 2 >= a[ i ] )
v.push_back( i );
}
cout << v.size() << '\n';
for( ll i = 0; i < v.size(); i ++ )
cout << v[ i ] << ' ';
}
Не хватает подключения пространства имён std
:
#include<bits/stdc++.h>
#include<vector>
using namespace std; // Этой строки не хватало
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const ll N = 1e5 + 5;
const ll MAX = 2e5 + 123;
const ll MOD = 1e9 + 7;
ll n, s, mn = MAX, a[ N ];
vector< ll > v;
int main()
{
scanf( "%I64d", &n );
for( ll i = 1; i <= n; i ++ )
{
scanf( "%I64d", &a[ i ] );
s += a[ i ];
mn = min( mn, a[ i ] );
}
if( a[ 1 ] < s / 2 || mn > a[ 1 ] / 2 ) return printf( "0\n0" ), 0;
for( ll i = 2; i <= n; i ++ )
{
if( a[ 1 ] / 2 >= a[ i ] ) v.push_back( i );
}
cout << v.size() << '\n';
for( ll i = 0; i < v.size(); i ++ ) cout << v[ i ] << ' ';
}
Используемые вами типы и операторы объявлены в пространстве имён std
, вследствие чего необходимо обозначить, что Вы работаете в этом пространстве.
Также есть другой вариант: прописывать используемое пространство имён непосредственно перед каждым идентификатором, объявленным в нём:
#include<bits/stdc++.h>
#include<vector>
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const ll N = 1e5 + 5;
const ll MAX = 2e5 + 123;
const ll MOD = 1e9 + 7;
ll n, s, mn = MAX, a[ N ];
std::vector< ll > v;
int main()
{
scanf( "%I64d", &n );
for( ll i = 1; i <= n; i ++ )
{
scanf( "%I64d", &a[ i ] );
s += a[ i ];
mn = std::min( mn, a[ i ] );
}
if( a[ 1 ] < s / 2 || mn > a[ 1 ] / 2 ) return printf( "0\n0" ), 0;
for( ll i = 2; i <= n; i ++ )
{
if( a[ 1 ] / 2 >= a[ i ] ) v.push_back( i );
}
std::cout << v.size() << '\n';
for( ll i = 0; i < v.size(); i ++ ) std::cout << v[ i ] << ' ';
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
у меня есть два класса Player и MapEditor , в классе Player я использую MapEditor, а в MapEditor я использую PlayerЯ забыл как называется это проблема но когда я пишу...
Код ошибок не вызывает, однако, при запуске кода - он даже не ждет пока пользователь введет значение и просто закрываетсяКак это исправить?...