Submission #842384

# Submission time Handle Problem Language Result Execution time Memory
842384 2023-09-02T19:45:56 Z pera T-Covering (eJOI19_covering) C++17
70 / 100
107 ms 102400 KB
#include<bits/stdc++.h>
using namespace std;

#define int long long

const int N = 3e6 + 1;

int dx[4] = {0 , 0 , -1 , 1};
int dy[4] = {1 , -1 , 0 , 0};

int n , m , ans = 0 , ok = 1;
vector<vector<int>> a , v , gd;
vector<int> g[N];

main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin >> n >> m;
	a.resize(n) , v.resize(n);
	gd.resize(n);
	for(int i = 0;i < n;i ++){
		a[i].resize(m);
		v[i].resize(m);
		gd[i].resize(m);
		for(int j = 0;j < m;j ++){
			cin >> a[i][j];
		}
	}
	int sp;cin >> sp;
	for(int i = 1;i <= sp;i ++){
		int x , y;cin >> x >> y;
		gd[x][y] = 1;
		ans += a[x][y];
		for(int k = 0;k < 4;k ++){
			int I = x + dx[k] , J = y + dy[k];
			if(0 <= I && I < n && 0 <= J && J < m){
				g[I * m + J].push_back(x * m + y);
				g[x * m + y].push_back(I * m + J);
			}
		}
	}
	for(int i = 0;i < n;i ++){
		for(int j = 0;j < m;j ++){
			if(v[i][j] == 0 && gd[i][j] == 1){
				int spc = 0 , sz = 0;
				queue<int> q;
				vector<int> all;
				q.push(i * m + j);
				v[i][j] = 1;/*
				cout << "st: ";*/
				while(q.size()){
					int vl = q.front();
					q.pop();
					int I = vl / m , J = vl % m;/*
					cout << I << " " << J << endl;*/
					spc += gd[I][J];
					if(gd[I][J] == 0) all.push_back(a[I][J]);
					for(int k = 0;k < g[vl].size();k ++){
						if(v[g[vl][k] / m][g[vl][k] % m] == 0){
							v[g[vl][k] / m][g[vl][k] % m] = 1;
							q.push(g[vl][k]);
						}
					}
					sz ++;
				}
				/*cout << "---" << endl;
				cout << "i , j : " << i << " " << j << "    " << sz << endl;*/
				if(sz < spc * 4){
					cout << "No" << endl;
					return 0;
				}
				assert(all.size() >= spc * 3);
				sort(all.rbegin() , all.rend());
				for(int k = 0;k < spc * 3;k ++){
					ans += all[k];
				}
			}
		}
	}
	cout << ans << endl;
}

Compilation message

covering.cpp:15:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   15 | main(){
      | ^~~~
covering.cpp: In function 'int main()':
covering.cpp:58:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |      for(int k = 0;k < g[vl].size();k ++){
      |                    ~~^~~~~~~~~~~~~~
In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from covering.cpp:1:
covering.cpp:72:23: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   72 |     assert(all.size() >= spc * 3);
      |            ~~~~~~~~~~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 18 ms 71000 KB Output is correct
2 Correct 18 ms 71516 KB Output is correct
3 Correct 21 ms 73136 KB Output is correct
4 Correct 33 ms 77916 KB Output is correct
5 Correct 73 ms 94544 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 71264 KB Output is correct
2 Correct 18 ms 71516 KB Output is correct
3 Correct 21 ms 73564 KB Output is correct
4 Correct 35 ms 79056 KB Output is correct
5 Correct 76 ms 98244 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 71132 KB Output is correct
2 Correct 16 ms 71512 KB Output is correct
3 Correct 24 ms 73052 KB Output is correct
4 Correct 33 ms 77872 KB Output is correct
5 Correct 71 ms 94552 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 15 ms 70876 KB Output is correct
2 Correct 15 ms 70876 KB Output is correct
3 Correct 18 ms 71864 KB Output is correct
4 Correct 17 ms 71516 KB Output is correct
5 Correct 22 ms 73308 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 15 ms 70744 KB Output is correct
2 Correct 14 ms 70800 KB Output is correct
3 Correct 16 ms 70808 KB Output is correct
4 Correct 15 ms 70748 KB Output is correct
5 Correct 15 ms 70748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 71000 KB Output is correct
2 Correct 18 ms 71516 KB Output is correct
3 Correct 21 ms 73136 KB Output is correct
4 Correct 33 ms 77916 KB Output is correct
5 Correct 73 ms 94544 KB Output is correct
6 Correct 18 ms 71264 KB Output is correct
7 Correct 18 ms 71516 KB Output is correct
8 Correct 21 ms 73564 KB Output is correct
9 Correct 35 ms 79056 KB Output is correct
10 Correct 76 ms 98244 KB Output is correct
11 Correct 16 ms 71132 KB Output is correct
12 Correct 16 ms 71512 KB Output is correct
13 Correct 24 ms 73052 KB Output is correct
14 Correct 33 ms 77872 KB Output is correct
15 Correct 71 ms 94552 KB Output is correct
16 Correct 15 ms 70876 KB Output is correct
17 Correct 15 ms 70876 KB Output is correct
18 Correct 18 ms 71864 KB Output is correct
19 Correct 17 ms 71516 KB Output is correct
20 Correct 22 ms 73308 KB Output is correct
21 Correct 17 ms 71004 KB Output is correct
22 Correct 17 ms 71772 KB Output is correct
23 Correct 23 ms 73556 KB Output is correct
24 Correct 35 ms 79240 KB Output is correct
25 Correct 80 ms 98456 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 71000 KB Output is correct
2 Correct 18 ms 71516 KB Output is correct
3 Correct 21 ms 73136 KB Output is correct
4 Correct 33 ms 77916 KB Output is correct
5 Correct 73 ms 94544 KB Output is correct
6 Correct 18 ms 71264 KB Output is correct
7 Correct 18 ms 71516 KB Output is correct
8 Correct 21 ms 73564 KB Output is correct
9 Correct 35 ms 79056 KB Output is correct
10 Correct 76 ms 98244 KB Output is correct
11 Correct 16 ms 71132 KB Output is correct
12 Correct 16 ms 71512 KB Output is correct
13 Correct 24 ms 73052 KB Output is correct
14 Correct 33 ms 77872 KB Output is correct
15 Correct 71 ms 94552 KB Output is correct
16 Correct 15 ms 70876 KB Output is correct
17 Correct 15 ms 70876 KB Output is correct
18 Correct 18 ms 71864 KB Output is correct
19 Correct 17 ms 71516 KB Output is correct
20 Correct 22 ms 73308 KB Output is correct
21 Correct 15 ms 70744 KB Output is correct
22 Correct 14 ms 70800 KB Output is correct
23 Correct 16 ms 70808 KB Output is correct
24 Correct 15 ms 70748 KB Output is correct
25 Correct 15 ms 70748 KB Output is correct
26 Correct 17 ms 71004 KB Output is correct
27 Correct 17 ms 71772 KB Output is correct
28 Correct 23 ms 73556 KB Output is correct
29 Correct 35 ms 79240 KB Output is correct
30 Correct 80 ms 98456 KB Output is correct
31 Runtime error 107 ms 102400 KB Execution killed with signal 9
32 Halted 0 ms 0 KB -