Submission #132621

# Submission time Handle Problem Language Result Execution time Memory
132621 2019-07-19T08:48:59 Z sean617 None (KOI17_cat) C++
23 / 100
2000 ms 25920 KB
#include <iostream>
#include <cstdio>
#include <vector>
#define N 300005
using namespace std;

typedef long long ll;
ll n, m, k, s, v[N], cnt[N], v2[N];
bool z, u[N], y[N];
vector<ll> a[N], k1, k2;
void f(ll p, ll q) {
	ll i, num;
	if (v[p] == k) {z = 1; return;}
	v[p] = k;
	for (i =0; i < a[p].size(); i++) {
		num = a[p][i];
		if (num == q || num == k) continue;
		f(num, p);
	}
}

void g(ll p, ll q) {
	ll i;
	if (y[p]) {
		s += p;
		for (i = q; i != p; i = v2[i]) s += i;
		return;
	}
	y[p] = 1;
	v2[p] = q;
	for (i = 0; i < a[p].size(); i++) {
		if (a[p][i] == q) continue;
		g(a[p][i], p);
	}
	v2[p] = 0;
}
int main()
{
	ll i, j, t1, t2;
	cin >> n >> m;
	for (i = 1; i <= m; i++) {
		scanf ("%lld %lld", &t1, &t2);
		a[t1].push_back(t2);
		a[t2].push_back(t1);
		if (t1 > t2) swap(t1, t2);
		if (t1 == t2 -1) u[t1] = 1;
		else if (t1 == 1 && t2 == n) u[n] = 1;
		else {
			k1.push_back(t1);
			k2.push_back(t2);
		}
	}
	if (n == m) {
		g(1, 0);
		cout << s;
		return 0;
	}

	if (n <= 5000 && m <= 5000) {
		for (k = 1; k <= n; k++) {
			for (j = 1; j <= n; j++) {
				if (v[j] == k || j == k) continue;
				z = 0;
				f(j, 0);
				if (z) break;
			}
			if (j > n) s += k;
		}
		cout << s;
		return 0;
	}
	for (i = 1; i <= n; i++) {
		if (!u[i]) break;
	}
	if (i > n) {
		for (i = 0; i < k1.size(); i++) {
			cnt[k1[i]]++;
			cnt[k2[i]]++;
		}
		for (i = 1; i <= n; i++) {
			if (cnt[i] == k1.size()) s += i;
		}
		cout << s;
		return 0;
	}

    cout << 0;
    return 0;
}

Compilation message

cat.cpp: In function 'void f(ll, ll)':
cat.cpp:15:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i =0; i < a[p].size(); i++) {
             ~~^~~~~~~~~~~~~
cat.cpp: In function 'void g(ll, ll)':
cat.cpp:31:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i = 0; i < a[p].size(); i++) {
              ~~^~~~~~~~~~~~~
cat.cpp: In function 'int main()':
cat.cpp:76:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (i = 0; i < k1.size(); i++) {
               ~~^~~~~~~~~~~
cat.cpp:81:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (cnt[i] == k1.size()) s += i;
        ~~~~~~~^~~~~~~~~~~~
cat.cpp:42:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf ("%lld %lld", &t1, &t2);
   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 8 ms 7416 KB Output is correct
2 Correct 8 ms 7416 KB Output is correct
3 Correct 8 ms 7420 KB Output is correct
4 Correct 8 ms 7416 KB Output is correct
5 Execution timed out 2055 ms 7800 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2033 ms 25920 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 118 ms 17124 KB Output is correct
2 Correct 118 ms 17016 KB Output is correct
3 Correct 119 ms 17220 KB Output is correct
4 Correct 120 ms 17016 KB Output is correct
5 Correct 119 ms 17004 KB Output is correct
6 Correct 119 ms 17140 KB Output is correct
7 Correct 118 ms 17016 KB Output is correct
8 Correct 118 ms 17016 KB Output is correct
9 Correct 119 ms 17144 KB Output is correct
10 Correct 140 ms 20580 KB Output is correct
11 Correct 141 ms 20496 KB Output is correct
12 Correct 140 ms 20580 KB Output is correct
13 Correct 141 ms 20572 KB Output is correct
14 Correct 165 ms 20572 KB Output is correct
15 Correct 161 ms 20836 KB Output is correct
16 Correct 158 ms 20824 KB Output is correct
17 Correct 161 ms 20820 KB Output is correct
18 Correct 161 ms 20956 KB Output is correct
19 Correct 166 ms 20780 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 7416 KB Output is correct
2 Correct 8 ms 7416 KB Output is correct
3 Correct 8 ms 7420 KB Output is correct
4 Correct 8 ms 7416 KB Output is correct
5 Execution timed out 2055 ms 7800 KB Time limit exceeded
6 Halted 0 ms 0 KB -