# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1143161 | andreifilimon | 새로운 문제 (POI13_ins) | C++20 | 5094 ms | 4756 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 time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |