제출 #418917

#제출 시각아이디문제언어결과실행 시간메모리
418917MeGustaElArroz23자동 인형 (IOI18_doll)C++14
0 / 100
350 ms8640 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'; 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); vi quedansueltos(1,0); 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){ //deb(counter); //debv(v); if (v.size()==1){ if(prof==0) return v[0]; else{ xy.push_back(pii{v[0],quedansueltos[quedansueltos.size()-1]}); quedansueltos.push_back(-counter); counter++; return -counter+1; } } xy.push_back(pii{}); int ind=counter; counter++; vi der; vi izq; for (int i=0;i<v.size();i++){ if (i%2==0) izq.push_back(v[i]); else der.push_back(v[i]); } //br; xy[ind]=pii{create_xy(izq,prof-1),create_xy(der,prof-1)}; //cerr << string(4*prof,' '); //debv(v); //cerr << string(4*prof,' '); //deb(-ind); //deb(xy[ind].first); //deb(xy[ind].second); //deb(-ind); return -ind; } void create_circuit(int n, vi ciclo) { int m=ciclo.size(); ciclo.push_back(INF); 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); } //for (int i=1;i<n+1;i++) debv(conexiones[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())); //cerr<<1; vi switchX,switchY; for (int i=1;i<xy.size();i++){ if (INF==xy[i].second) xy[i].second=quedansueltos[quedansueltos.size()-1]; } for (int i=1;i<n;i++){ if (INF==salidas[i]) salidas[i]=quedansueltos[quedansueltos.size()-1]; } for (int i=1;i<xy.size();i++){ switchX.push_back(xy[i].first); switchY.push_back(xy[i].second); } //debv(conexiones[1]); debv(salidas); debv(switchX); debv(switchY); answer(salidas, switchX, switchY); }

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

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