Submission #619977

#TimeUsernameProblemLanguageResultExecution timeMemory
619977Omar_FakhryCarnival (CEOI14_carnival)C++17
0 / 100
10 ms208 KiB
//بسم الله الرحمن الرحيم #pragma GCC optimize ("O3") #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define pi 3.14159265358979323846 #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> #define ll long long #define For(start,end,step) for(ll i=start;i<=end;i+=step) #define For2(start,end,step) for(ll j=start;j<=end;j+=step) #define mult(x,y) x*(y-1) #define ALL(x) x.begin(), x.end() using namespace std; using namespace __gnu_pbds; const ll mod=1e9+7; bool prime(ll n) { for(int i=2;i*i<=n;i++)if(n%i==0)return 0; return 1; } ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; } ll lcm(ll a, ll b) { return a / gcd(a, b) * b; } ll po(ll x,ll y) { if(y==0) return 1; ll ret=po(x,y/2); ret=(ret*ret); if(y&1) return (x*ret); return ret; } ll sigma(ll s,ll e,ll num_elements) { ll res1=s+e; ll res=(((s+e)/2)*(num_elements)); if(res1%2)res+=num_elements/2; return res; } ll mod_inverse(ll x) { return po(x,mod-2); } string bin(ll x) { string str=""; while(x) { if(x%2) { str+='1'; } else { str+='0'; } x/=2; } return str; } ll GP(ll base,ll power,ll step) { return (po(base,power+step)+mod-1)%mod*mod_inverse(po(base,step)-1)%mod; } ll fact(ll x) { if(x<2)return 1; return x*fact(x-1)%mod; } ll ncr(ll x,ll y) { return fact(x)*mod_inverse(fact(y)*fact(x-y)%mod)%mod; } bool valid(ll x,ll y,ll n,ll m) { return(x>=0&&y>=0&&x<n&&y<m); } int dx[8]= {0,0,1,-1,-1,1,1,-1}; int dy[8]= {-1,1,0,0,-1,1,-1,1}; const int N=55; int n; int main() { //ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); //freopen("input.txt", "r", stdin); //freopen("output.txt","w",stdout); cin>>n; vector<int>vec; int cnt=1; vector<int>ans(n+1); ans[1]=cnt++; vec.push_back(1); for(int i=2;i<=n;i++) { int s=0,e=vec.size()-1; int temp3=-1; while(s<=e) { int mid=(s+e)/2; int temp=vec.size()-mid; int length=i-vec[mid]+1; cout<<length<<' '; for(int j=vec[mid];j<=i;j++) { cout<<j<<' '; } cout<<'\n'; int temp2;cin>>temp2; if(temp2==temp) { temp3=mid; s=mid+1; } else { e=mid-1; } } if(temp3==-1) { ans[i]=cnt++; vec.push_back(i); } else { //cout<<temp3<<'\n'; ans[i]=ans[vec[temp3]]; vector<int>vec2; for(int j=temp3+1;j<vec.size();j++) { vec2.push_back(vec.back()); vec.pop_back(); } vec.pop_back(); for(int j=0;j<vec2.size();j++)vec.push_back(vec2[j]); vec.push_back(i); } //for(int j=0;j<vec.size();j++)cout<<vec[j]<<' '; //cout<<'\n'; } cout<<"0 "; for(int i=1;i<=n;i++)cout<<ans[i]<<' '; cout<<'\n'; return 0; }

Compilation message (stderr)

carnival.cpp: In function 'int main()':
carnival.cpp:130:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  130 |             for(int j=temp3+1;j<vec.size();j++)
      |                               ~^~~~~~~~~~~
carnival.cpp:136:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  136 |             for(int j=0;j<vec2.size();j++)vec.push_back(vec2[j]);
      |                         ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...