답안 #521410

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
521410 2022-02-02T05:23:33 Z amunduzbaev IOI 바이러스 (JOI21_fever) C++14
0 / 100
1 ms 332 KB
#include "bits/stdc++.h"
using namespace std;
 
#define ar array

signed main(){
	ios::sync_with_stdio(0); cin.tie(0);
	
	int n; cin>>n;
	vector<ar<int, 2>> p(n);
	for(int i=0;i<n;i++) cin>>p[i][0]>>p[i][1];
	map<int, vector<int>> m1, m2, x, y;
	for(int i=0;i<n;i++){
		m1[p[i][0] + p[i][1]].push_back(i);
		m2[p[i][0] - p[i][1]].push_back(i);
		//~ x[p[i][0]].pu
	}
	
	for(auto& [x, v] : m1){
		sort(v.begin(), v.end(), [&](int i, int j) { return (p[i][0] < p[j][0]); });
		//~ for(int i=0;i<(int)v.size();i++) p1[v[i]] = i;
	}
	
	for(auto& [x, v] : m2){
		sort(v.begin(), v.end(), [&](int i, int j) { return (p[i][0] < p[j][0]); });
		//~ for(int i=0;i<(int)v.size();i++) p2[v[i]] = i;
	}
	
	int ans = 0;
	for(int t=0;t<4;t++){
		vector<int> used(n);
		used[0] = 1;
		queue<ar<int, 2>> qq; qq.push({0, t});
		set<int> u1, u2;
		int res = 0;
		while(!qq.empty()){
			res++;
			auto u = qq.front(); qq.pop();
			int i = u[0], t = u[1];
			if(!u1.count(p[i][0] + p[i][1])){
				auto& v = m1[p[i][0] + p[i][1]];
				if(v.back() == i && (t == 1 || t == 2));
				else if(v[0] == i && (t == 0 || t == 3));
				else {
					int tt = (t < 2 ? 1 : 2);
					for(auto x : v){
						if(x == i) tt = (t < 2 ? 0 : 3);
						if(used[x]) continue;
						used[x] = 1;
						qq.push({x, tt});
					}
					u1.insert(p[i][0] + p[i][1]);
				}
			}
			
			if(!u2.count(p[i][0] - p[i][1])){
				auto& v = m2[p[i][0] - p[i][1]];
				if(v.back() == i && (t == 0 || t == 1));
				else if(v[0] == i && (t == 2 || t == 3));
				else {
					int tt = (t == 0 || t == 3 ? 0 : 1);
					for(auto x : v){
						if(x == i) tt = (tt == 0 ? 3 : 2);
						if(used[x]) continue;
						used[x] = 1;
						qq.push({x, tt});
					}
					u2.insert(p[i][0] - p[i][1]);
				}
			}
		}
		
		ans = max(ans, res);
	}
	
	cout<<ans<<"\n";
}

Compilation message

fever.cpp: In function 'int main()':
fever.cpp:19:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   19 |  for(auto& [x, v] : m1){
      |            ^
fever.cpp:24:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   24 |  for(auto& [x, v] : m2){
      |            ^
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 316 KB Output is correct
5 Correct 1 ms 304 KB Output is correct
6 Correct 1 ms 316 KB Output is correct
7 Correct 0 ms 312 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 0 ms 204 KB Output is correct
11 Correct 0 ms 204 KB Output is correct
12 Correct 0 ms 204 KB Output is correct
13 Correct 0 ms 204 KB Output is correct
14 Correct 0 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Incorrect 0 ms 204 KB Output isn't correct
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 316 KB Output is correct
5 Correct 1 ms 304 KB Output is correct
6 Correct 1 ms 316 KB Output is correct
7 Correct 0 ms 312 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 0 ms 204 KB Output is correct
11 Correct 0 ms 204 KB Output is correct
12 Correct 0 ms 204 KB Output is correct
13 Correct 0 ms 204 KB Output is correct
14 Correct 0 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Incorrect 0 ms 204 KB Output isn't correct
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 316 KB Output is correct
5 Correct 1 ms 304 KB Output is correct
6 Correct 1 ms 316 KB Output is correct
7 Correct 0 ms 312 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 0 ms 204 KB Output is correct
11 Correct 0 ms 204 KB Output is correct
12 Correct 0 ms 204 KB Output is correct
13 Correct 0 ms 204 KB Output is correct
14 Correct 0 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Incorrect 0 ms 204 KB Output isn't correct
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 316 KB Output is correct
5 Correct 1 ms 304 KB Output is correct
6 Correct 1 ms 316 KB Output is correct
7 Correct 0 ms 312 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 0 ms 204 KB Output is correct
11 Correct 0 ms 204 KB Output is correct
12 Correct 0 ms 204 KB Output is correct
13 Correct 0 ms 204 KB Output is correct
14 Correct 0 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Incorrect 0 ms 204 KB Output isn't correct
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 316 KB Output is correct
5 Correct 1 ms 304 KB Output is correct
6 Correct 1 ms 316 KB Output is correct
7 Correct 0 ms 312 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 0 ms 204 KB Output is correct
11 Correct 0 ms 204 KB Output is correct
12 Correct 0 ms 204 KB Output is correct
13 Correct 0 ms 204 KB Output is correct
14 Correct 0 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Incorrect 0 ms 204 KB Output isn't correct
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Correct 0 ms 316 KB Output is correct
5 Correct 1 ms 304 KB Output is correct
6 Correct 1 ms 316 KB Output is correct
7 Correct 0 ms 312 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 0 ms 204 KB Output is correct
10 Correct 0 ms 204 KB Output is correct
11 Correct 0 ms 204 KB Output is correct
12 Correct 0 ms 204 KB Output is correct
13 Correct 0 ms 204 KB Output is correct
14 Correct 0 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Incorrect 0 ms 204 KB Output isn't correct
17 Halted 0 ms 0 KB -