Submission #312673

#TimeUsernameProblemLanguageResultExecution timeMemory
312673colazcyChecker (COCI19_checker)C++17
110 / 110
622 ms76508 KiB
#include <cstdio> #include <cctype> #include <algorithm> #include <vector> #include <map> using namespace std; const int maxn = 2e5 + 100; inline int read(){ int x = 0;char c = getchar(); while(!isdigit(c))c = getchar(); while(isdigit(c))x = x * 10 + c - '0',c = getchar(); return x; } inline int readig(){ char c = getchar(); while(!isdigit(c))c = getchar(); return c - '0'; } int n,flg; map<int,int> col[maxn]; inline int bel(int x,int u){ if(x < u)return 1; else return 2; } struct edge{ int u,v,c; bool operator < (const edge &rhs)const{ if(bel(v,u) != bel(rhs.v,u))return bel(v,u) < bel(rhs.v,u); return v > rhs.v; } }; vector<edge> G[maxn]; inline void addedge(int u,int v,int d){ G[u].push_back(edge{u,v,d}); } inline int chk(int a,int b,int c){ return !((a == b) || (a == c) || (b == c)); } int main(){ // freopen("checker.in","r",stdin); // freopen("checker.out","w",stdout); read(); n = read(); for(int c,i = 1;i < n;i++)c = col[i][i + 1] = col[i + 1][i] = readig(),addedge(i,i + 1,c),addedge(i + 1,i,c); col[n][1] = col[1][n] = readig(); addedge(n,1,col[n][1]),addedge(1,n,col[1][n]); for(int l,r,c,i = 1;i <= n - 3;i++){ l = read(),r = read(),c = read(); addedge(l,r,c); addedge(r,l,c); col[l][r] = col[r][l] = c; } for(int i = 1;i <= n;i++)sort(G[i].begin(),G[i].end()); for(int u = 1;u <= n;u++){ for(int i = 0;i < (int)G[u].size() - 1;i++){ int v1 = G[u][i].v,v2 = G[u][i + 1].v; if(col[v1].find(v2) == col[v1].end())return puts("neispravna triangulacija"),0; if(!chk(G[u][i].c,G[u][i + 1].c,col[v1][v2]))flg = 1; } } if(flg)return puts("neispravno bojenje"),0; puts("tocno"); fclose(stdin); fclose(stdout); return 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...