Submission #299679

#TimeUsernameProblemLanguageResultExecution timeMemory
299679cfalasMechanical Doll (IOI18_doll)C++14
16 / 100
368 ms24048 KiB
#include "doll.h" #include<bits/stdc++.h> using namespace std; #define FORi(i,a,b) for(int i=a;i<b;i++) #define FOR(i,n) FORi(i,0,n) #define FOA(v,n) for(auto v : n) #define len(a) ((int)a.size()) typedef vector<int> vi; map<int, vi> points; bool vis[100000]; vi X,Y,c; void rec(int cur){ //cout<<"Recursing "<<cur<<endl; vis[cur] = true; if(len(points[cur])==4){ int orig = -len(X)-1; c[cur] = -len(X)-1; //cout<<"adding "<<-len(X)-1<<endl; X.push_back(-len(X)-2); Y.push_back(-len(X)-2); X.push_back(points[cur][0]); X.push_back(points[cur][1]); Y.push_back(points[cur][2]); Y.push_back(points[cur][3]); } else if(len(points[cur])==3){ int orig = -len(X)-1; c[cur] = -len(X)-1; //cout<<"adding "<<-len(X)-1<<endl; X.push_back(-len(X)-2); Y.push_back(-len(X)-2); X.push_back(orig); Y.push_back(points[cur][1]); X.push_back(points[cur][0]); Y.push_back(points[cur][2]); } else if(len(points[cur])==2){ c[cur] = -len(X)-1; X.push_back(points[cur][0]); Y.push_back(points[cur][1]); } else c[cur] = points[cur][0]; //cout<<"Recursing "<<cur<<endl; FOA(v,points[cur]) if(!vis[v]) rec(v); } void create_circuit(int M, std::vector<int> A) { c.resize(M+1); A.push_back(0); int prev=0; points[0].push_back(A[0]); FOR(i,len(A)-1){ points[A[i]].push_back(A[i+1]); } rec(0); //FOR(i,M+1) cout<<i<<" "<<c[i]<<endl; //FOR(i,len(X)) cout<<-i-1<<" "<<X[i]<<" "<<Y[i]<<endl; answer(c, X, Y); }

Compilation message (stderr)

doll.cpp: In function 'void rec(int)':
doll.cpp:20:7: warning: unused variable 'orig' [-Wunused-variable]
   20 |   int orig = -len(X)-1;
      |       ^~~~
doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:55:6: warning: unused variable 'prev' [-Wunused-variable]
   55 |  int prev=0;
      |      ^~~~
#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...