제출 #418992

#제출 시각아이디문제언어결과실행 시간메모리
418992MeGustaElArroz23자동 인형 (IOI18_doll)C++14
53 / 100
165 ms23908 KiB
#include<bits/stdc++.h> #include "doll.h" using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int,int> pii; typedef vector<pii> vii; typedef vector<vii> vvii; #define deb(x) cerr << #x << " = " << x << ", "; #define br cerr<<'\n'; #define debr(x) cerr << #x<<" = "<<x<<'\n'; void debv_(auto v){ for (int x:v) cerr << x<<", "; cerr<<'\n'; } #define debv(x) cerr<< #x<<" = ", debv_(x); int counter=1; vii xy(1); const int INF=1000000000; int v2(int x){ int sol=0; int ac=1; while (ac<x){ sol++; ac*=2; } return sol; } int create_xy(vi v, int prof,int padre){ if (prof<-10) return 0; //debv(v); // debr(prof); if (v.size()==1){ if(prof==0) return v[0]; else{ xy.push_back(pii{padre,v[0]}); counter++; return -counter+1; } } if (v.size()==2 and prof==1){ xy.push_back(pii{v[0],v[1]}); counter++; return -counter+1; } xy.push_back(pii{}); int ind=counter; counter++; vi der; vi izq; int hastadonde=1; for (int i=0;i<prof-1;i++) hastadonde*=2; for (int i=0;i<v.size()-hastadonde;i++){ if (i%2==0) izq.push_back(v[i]); else der.push_back(v[i]); } for (int i=v.size()-hastadonde;i<v.size();i++){ if ((i+v.size()+hastadonde)%2==0) izq.push_back(v[i]); else der.push_back(v[i]); } xy[ind]=pii{create_xy(izq,prof-1,padre),create_xy(der,prof-1,padre)}; return -ind; } void create_circuit(int n, vi ciclo) { int m=ciclo.size(); ciclo.push_back(0); vvi conexiones(n+1); for (int i=0;i<m;i++) conexiones[ciclo[i]].push_back(ciclo[i+1]); for (int i=1;i<n+1;i++){ if (conexiones[i].size()==0) conexiones[i].push_back(i); } vi salidas(n+1); salidas[0]=ciclo[0]; for (int i=1;i<n+1;i++) salidas[i]=create_xy(conexiones[i],v2(conexiones[i].size()),-counter); vi switchX,switchY; for (int i=1;i<xy.size();i++){ switchX.push_back(xy[i].first); switchY.push_back(xy[i].second); } //debv(salidas); //debv(switchX); //debv(switchY); answer(salidas, switchX, switchY); }

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

doll.cpp:15:12: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
   15 | void debv_(auto v){
      |            ^~~~
doll.cpp: In function 'int create_xy(vi, int, int)':
doll.cpp:60:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |  for (int i=0;i<v.size()-hastadonde;i++){
      |               ~^~~~~~~~~~~~~~~~~~~~
doll.cpp:64:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |  for (int i=v.size()-hastadonde;i<v.size();i++){
      |                                 ~^~~~~~~~~
doll.cpp: In function 'void create_circuit(int, vi)':
doll.cpp:86:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   86 |  for (int i=1;i<xy.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...