QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#771039#9557. TemperanceMine_King#WA 3ms13404kbC++141.7kb2024-11-22 08:59:052024-11-22 08:59:06

Judging History

你现在查看的是最新测评结果

  • [2024-11-22 08:59:06]
  • 评测
  • 测评结果:WA
  • 用时:3ms
  • 内存:13404kb
  • [2024-11-22 08:59:05]
  • 提交

answer

// 長い夜の終わりを信じながら
// Think twice, code once.
#include <set>
#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#define eputchar(c) putc(c, stderr)
#define eprintf(...) fprintf(stderr, __VA_ARGS__)
#define eputs(str) fputs(str, stderr), putc('\n', stderr)
using namespace std;

int T, n, dlt[100005];
int a[100005][3];
int cnt[100005][3];
vector<int> vec[100005][3];
set<pair<int, int>> s[3];

int getval(int id) {return max({cnt[a[id][0]][0], cnt[a[id][1]][1], cnt[a[id][2]][2]}) - 1;}

int main() {
	scanf("%d", &T);
	while (T--) {
		scanf("%d", &n);
		for (int i = 1; i <= n; i++) {
			dlt[i] = 0;
			for (int j = 0; j < 3; j++) {
				scanf("%d", &a[i][j]);
				s[j].erase({cnt[a[i][j]][j], a[i][j]});
				s[j].emplace(++cnt[a[i][j]][j], a[i][j]);
				vec[a[i][j]][j].push_back(i);
			}
		}
		int ans = 0;
		for (int i = 0; i < n; i++) {
			// eprintf("k = %d\n", i);
			while (1) {
				int x = -1;
				for (int j = 0; j < 3; j++)
					if (!s[j].empty() && s[j].begin()->first <= i) {x = j; break;}
				if (x == -1) break;
				int id = s[x].begin()->second;
				s[x].erase(s[x].begin());
				for (int j : vec[id][x])
					if (!dlt[j] && getval(j) < i) {
						ans++;
						dlt[j] = 1;
						// eprintf("dlt: %d\n", j);
						for (int k = 0; k < 3; k++) {
							int flag = s[k].count({cnt[a[j][k]][k], a[j][k]});
							s[k].erase({cnt[a[j][k]][k], a[j][k]});
							cnt[a[j][k]][k]--;
							if (flag) s[k].emplace(cnt[a[j][k]][k], a[j][k]);
						}
					}
				vec[id][x].clear();
			}
			printf("%d ", ans);
		}
		puts("");
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 3ms
memory: 11812kb

input:

2
5
1 1 1
1 1 2
1 1 3
2 3 5
2 2 4
3
1 1 1
2 2 2
3 3 3

output:

0 0 2 5 5 
0 3 3 

result:

ok 8 numbers

Test #2:

score: -100
Wrong Answer
time: 3ms
memory: 13404kb

input:

16
1
1 1 1
2
1 1 1
1 1 100000
3
1 1 1
1 1 100000
1 100000 1
4
1 1 1
1 1 100000
1 100000 1
1 100000 100000
5
1 1 1
1 1 100000
1 100000 1
1 100000 100000
100000 1 1
6
1 1 1
1 1 100000
1 100000 1
1 100000 100000
100000 1 1
100000 1 100000
7
1 1 1
1 1 100000
1 100000 1
1 100000 100000
100000 1 1
100000 ...

output:

0 
0 0 
0 0 0 
0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 0 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 
0 
0 0 
0 0 0 
0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 0 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 

result:

wrong answer 14th numbers differ - expected: '1', found: '0'