제출 #620502

#제출 시각아이디문제언어결과실행 시간메모리
620502kshitij_sodaniMinerals (JOI19_minerals)C++14
75 / 100
81 ms5156 KiB
//#pragma GCC optimize("Ofast,unroll-loops") #include <bits/stdc++.h> using namespace std; typedef long long llo; #define mp make_pair #define pb push_back #define a first #define b second #define endl '\n' #include "minerals.h" vector<pair<int,int>> ans; int cur=0; set<int> xx; void solve(vector<int> aa,vector<int> bb,int y=0){ /*for(auto j:aa){ cout<<j<<"."; } cout<<endl; for(auto j:bb){ cout<<j<<"."; } cout<<endl;*/ if(aa.size()==1){ //cout<<aa[0]<<":"<<bb[0]<<endl; ans.pb({aa[0],bb[0]}); return; } //int cur=0; vector<int> cc; vector<int> dd; vector<int> ee; vector<int> ff; int x=aa.size()/2; if(aa.size()>16){ x+=3; } else if(aa.size()>8){ x+=2;//=2; } else if(aa.size()>2){ x++; } for(int i=0;i<aa.size();i++){ if(i<x){ dd.pb(aa[i]); continue; } cur=Query(aa[i]); xx.insert(aa[i]); cc.pb(aa[i]); } for(int i=0;i<bb.size();i++){ int cur2=Query(bb[i]); /* if(bb.size()==4){ cout<<cur<<","<<cur2<<","<<bb[i]<<endl; }*/ if(y==0 and cur2==cur){ ee.pb(bb[i]); continue; } else if(y==1 and cur2!=cur){ cur=cur2; ee.pb(bb[i]); continue; } //Query(bb[i]); cur=cur2; ff.pb(bb[i]); } /*for(auto j:cc){ cur=Query(j); }*/ /*for(auto j:cc){ cout<<j<<","; } cout<<endl; for(auto j:ee){ cout<<j<<","; } cout<<endl<<endl;;*/ solve(cc,ee,y^1); solve(dd,ff,y); } void Solve(int n) { vector<int> aa; vector<int> bb; int cur5=0; for(int i=1;i<=2*n;i++){ int cur2=Query(i); if(cur2>cur5){ aa.pb(i); cur5=cur2; continue; } bb.pb(i); Query(i); } /* for(auto j:aa){ Query(j); } */ solve(aa,bb,1); for (int i=0; i<n;i++) { Answer(ans[i].a,ans[i].b); } }

컴파일 시 표준 에러 (stderr) 메시지

minerals.cpp: In function 'void solve(std::vector<int>, std::vector<int>, int)':
minerals.cpp:45:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |  for(int i=0;i<aa.size();i++){
      |              ~^~~~~~~~~~
minerals.cpp:54:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |  for(int i=0;i<bb.size();i++){
      |              ~^~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...