Submission #711747

#TimeUsernameProblemLanguageResultExecution timeMemory
711747scottchouChecker (COCI19_checker)C++17
110 / 110
104 ms16916 KiB
#include<bits/stdc++.h>
using namespace std;
int  const N = 2e5 + 5;
vector<pair<int, int> > have[N];
int instk[N];
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, t;
    cin >> t;
    cin >> n;
    string s;
    cin >> s;
    int u, v, c;
    for(int i = 0; i < n - 3; i++){
        cin >> u >> v >> c;
        if(u > v)
            swap(u, v);
        have[u].push_back({v, c});
    }
    vector<int> stk;
    for(int i = 1; i <= n; i++){
        while(instk[i]){
            if(stk.back() != i){
                cout << "neispravna triangulacija\n";
                return 0;
            }else{
                stk.pop_back();
                instk[i]--;
            }
        }
        sort(have[i].begin(), have[i].end());
        for(int j = (int)have[i].size() - 1; j >= 0; j--){
            stk.push_back(have[i][j].first);
            instk[have[i][j].first]++;
        }
    }
    vector<pair<int,int> > st;
    vector<int> stk2;
    for(int i = 1; i <= n; i++){
        while(instk[i]){
            if(st.back().second == stk2.back() || stk2.back() == stk2[stk2.size() - 2] || stk2[stk2.size() - 2] == st.back().second){
                cout << "neispravno bojenje\n";
                return 0;
            }
            stk2.pop_back();
            stk2.pop_back();
            stk2.push_back(st.back().second);
            st.pop_back();
            instk[i]--;
        }
        for(int j = (int)have[i].size() - 1; j >= 0; j--){
            st.push_back(have[i][j]);
            instk[have[i][j].first]++;
        }
        if(i == n){
            if(s[i - 1] - '0' == stk2.back() || stk2.back() == stk2[stk2.size() - 2] || stk2[stk2.size() - 2] == s[i - 1] - '0'){
                cout << "neispravno bojenje\n";
                return 0;
            }
        }
        stk2.push_back(s[i - 1] - '0');
    }
    cout << "tocno\n";
}
#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...