Submission #1143161

#TimeUsernameProblemLanguageResultExecution timeMemory
1143161andreifilimonInspector (POI13_ins)C++20
0 / 100
5094 ms4756 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int z;
    cin >> z;
    while (z--)
    {
        int n, m;
        cin >> n >> m;
        struct infoo
        {
            int t, j, i;
        };
        vector<infoo> stm(m);
        for (auto &s : stm)
            cin >> s.t >> s.j >> s.i;

        int st = 1, dr = m, ans = 0;
        while (st <= dr)
        {
            int mid = st + (dr - st) / 2;
            bool ok = true;
            map<int, int> vt;
            map<int, vector<int>> tprg;
            for (int s = 0; s < mid; s++)
            {
                int t = stm[s].t;
                int j = stm[s].j;
                int cnt = stm[s].i + 1;
                if (vt.find(t) != vt.end())
                {
                    if (vt[t] != cnt)
                    {
                        ok = false;
                        break;
                    }
                }
                else
                {
                    vt[t] = cnt;
                }
            }
            if (ok)
            {
                for (auto &[t, cnt] : vt)
                {
                    if (cnt > n)
                    {
                        ok = false;
                        break;
                    }
                }
            }
            if (ok)
            {
                ans = mid;
                st = mid + 1;
            }
            else
            {
                dr = mid - 1;
            }
        }
        cout << ans << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...