This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
const int N=2e5;
const string OK="tocno\n",WRONGCOL="neispravno bojenje\n",WRONGTRI="neispravna triangulacija\n";
int tab[N+10];
vector<pair<int,int>> e[N+10];
vector<int> st;
bool patriotic(int a,int b,int c)
{
return (a!=b && a!=c && b!=c);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int sub,n;
cin>>sub>>n;
for(int i=1;i<=n;i++)
{
char c;
cin>>c;
tab[i]=c-'1';
}
for(int i=1;i<=n-3;i++)
{
int a,b,c;
cin>>a>>b>>c;
c--;
if(a>b)
swap(a,b);
e[b].emplace_back(a,c);
}
for(int i=1;i<=n;i++)
{
sort(e[i].begin(),e[i].end());
reverse(e[i].begin(),e[i].end());
}
for(int i=1;i<=n;i++)
{
for(auto [a,c]:e[i])
{
if(st.size()<2 || st[st.size()-2]!=a)
{
cout<<WRONGTRI;
return 0;
}
if(!patriotic(c,tab[st[st.size()-2]],tab[st.back()]))
{
cout<<WRONGCOL;
return 0;
}
st.pop_back();
tab[st.back()]=c;
}
st.push_back(i);
}
if(st.size()!=3)
cout<<WRONGTRI;
else if(!patriotic(tab[st[0]],tab[st[1]],tab[st[2]]))
cout<<WRONGCOL;
else
cout<<OK;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |