# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
104885 |
2019-04-09T12:47:36 Z |
groeneprof |
Paths (BOI18_paths) |
C++14 |
|
1026 ms |
74612 KB |
#include <bits/stdc++.h>
#define int long long
#define P(x) do {if(debug) cout << x << endl;} while(false)
#define H(x) P(#x << ": " << x)
#define FR(i, a, b) for(int i = (a); i < (b); ++i)
#define F(i, n) FR(i, 0, n)
#define DR(i, a, b) for(int i = (b); i --> (a);)
#define D(i, n) DR(i, 0, n)
#define S(s) (int)(s).size()
#define ALL(x) (x).begin(), (x).end()
#define MI(x, a) (x) = min(x, a)
#define MA(x, a) (x) = max(x, a)
#define V vector
#define pb push_back
#define mp make_pair
using namespace std;
const bool debug = 0;
int factorial[] = {1, 1, 2, 6, 24, 120, 720};
int N,M,K;
vector<vector<int> > sets;
vector<int> color;
vector<int> place;
vector<vector<int> > graph;
/*vector<int> gen(vector<int> a, int i, int j){
P("gen"<< i << " " << j<<" "<<factorial[a.size()-1]);
if(j == 1) return {a[i]};
//int j = a.size();
vector<int> res(j);
res[0] = i/factorial[a.size()-1];
int ggggg = a[res[0]];
int ff = 0;
FR(k, 0, a.size()-1){
if(k == res[0]) ff++;
a[k] = a[k+ff];
H(a[k]);
}
a.pop_back();
vector<int> v = gen(a, i%factorial[a.size()], j-1);
F(k, j-1){
res[k+1] = v[k];
}
res[0] = ggggg;
return res;
}
int ptoint(vector<int> v){
int res = 0;
for(int i = 0; i<v.size(); i++){
res += (v[i]+1)*factorial[K-i+1];
}
return res;
}*/
vector<int> colortocolor(int c1, int c2, vector<int> base, vector<int>& res){
//vector<int> res(sets[c2].size(), 0);
for(int u : sets[c1]){
for(int v : graph[u]) if(color[v] == c2){
res[v] += base[u];
}
}
return res;
}
string bin(int a){
string s;
for(int i = 0; i<6; i++){
s+='0' + ((a & (1<<i))>>i);
}
return s;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>N>>M>>K;
sets.resize(K);
color.resize(N);
graph.resize(N);
place.resize(N);
F(i, N){
int a;
cin>>a;
a--;
place[i] = sets[a].size();
color[i]=a;
sets[a].push_back(i);
}
F(i, M){
int a, b;
cin>>a>>b;
a--;
b--;
graph[a].push_back(b);
graph[b].push_back(a);
}
P("DDDDDD");
vector<vector<int> > dp(N, vector<int>(1<<K, 0));
P("CCCCCC");
F(i, N){
dp[i][1<<color[i]] = 1;
}
P("BBBBBBBb");
FR(bs, 1, (1<<K)){
F(j, N) if(((1<<color[j])&bs)!=0){
for(int k : graph[j]) if(((1<<color[k])&bs)!=0){
P(bin(bs) <<" "<< j <<" "<< k<< " "<< bin(bs-(1<<color[k])));
dp[j][bs] += dp[k][bs-(1<<color[j])];
P(dp[j][bs]);
}
}
}
P("AAAAAAAAAAA");
int sum = 0;//
F(i, N) F(j, 1<<K){
P(i<<" "<<bin(j)<<": "<<dp[i][j]);
sum+=dp[i][j];
}
cout<<sum-N;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
428 KB |
Output is correct |
2 |
Correct |
2 ms |
384 KB |
Output is correct |
3 |
Correct |
2 ms |
384 KB |
Output is correct |
4 |
Correct |
3 ms |
384 KB |
Output is correct |
5 |
Correct |
3 ms |
384 KB |
Output is correct |
6 |
Correct |
3 ms |
384 KB |
Output is correct |
7 |
Correct |
2 ms |
356 KB |
Output is correct |
8 |
Correct |
2 ms |
384 KB |
Output is correct |
9 |
Correct |
2 ms |
384 KB |
Output is correct |
10 |
Correct |
3 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
117 ms |
8184 KB |
Output is correct |
2 |
Correct |
125 ms |
7552 KB |
Output is correct |
3 |
Correct |
649 ms |
55640 KB |
Output is correct |
4 |
Correct |
245 ms |
11472 KB |
Output is correct |
5 |
Correct |
196 ms |
10844 KB |
Output is correct |
6 |
Correct |
467 ms |
39252 KB |
Output is correct |
7 |
Correct |
670 ms |
55664 KB |
Output is correct |
8 |
Correct |
650 ms |
56352 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
428 KB |
Output is correct |
2 |
Correct |
2 ms |
384 KB |
Output is correct |
3 |
Correct |
2 ms |
384 KB |
Output is correct |
4 |
Correct |
3 ms |
384 KB |
Output is correct |
5 |
Correct |
3 ms |
384 KB |
Output is correct |
6 |
Correct |
3 ms |
384 KB |
Output is correct |
7 |
Correct |
2 ms |
356 KB |
Output is correct |
8 |
Correct |
2 ms |
384 KB |
Output is correct |
9 |
Correct |
2 ms |
384 KB |
Output is correct |
10 |
Correct |
3 ms |
384 KB |
Output is correct |
11 |
Correct |
117 ms |
8184 KB |
Output is correct |
12 |
Correct |
125 ms |
7552 KB |
Output is correct |
13 |
Correct |
649 ms |
55640 KB |
Output is correct |
14 |
Correct |
245 ms |
11472 KB |
Output is correct |
15 |
Correct |
196 ms |
10844 KB |
Output is correct |
16 |
Correct |
467 ms |
39252 KB |
Output is correct |
17 |
Correct |
670 ms |
55664 KB |
Output is correct |
18 |
Correct |
650 ms |
56352 KB |
Output is correct |
19 |
Correct |
154 ms |
8108 KB |
Output is correct |
20 |
Correct |
92 ms |
7544 KB |
Output is correct |
21 |
Correct |
727 ms |
55648 KB |
Output is correct |
22 |
Correct |
239 ms |
11392 KB |
Output is correct |
23 |
Correct |
261 ms |
11084 KB |
Output is correct |
24 |
Correct |
482 ms |
39224 KB |
Output is correct |
25 |
Correct |
679 ms |
55648 KB |
Output is correct |
26 |
Correct |
694 ms |
56276 KB |
Output is correct |
27 |
Correct |
117 ms |
7544 KB |
Output is correct |
28 |
Correct |
169 ms |
10232 KB |
Output is correct |
29 |
Correct |
938 ms |
74612 KB |
Output is correct |
30 |
Correct |
567 ms |
40980 KB |
Output is correct |
31 |
Correct |
582 ms |
41236 KB |
Output is correct |
32 |
Correct |
1026 ms |
74536 KB |
Output is correct |
33 |
Correct |
2 ms |
384 KB |
Output is correct |
34 |
Correct |
2 ms |
384 KB |
Output is correct |
35 |
Correct |
3 ms |
384 KB |
Output is correct |
36 |
Correct |
2 ms |
384 KB |
Output is correct |
37 |
Correct |
2 ms |
384 KB |
Output is correct |
38 |
Correct |
2 ms |
384 KB |
Output is correct |
39 |
Correct |
2 ms |
384 KB |
Output is correct |
40 |
Correct |
2 ms |
384 KB |
Output is correct |
41 |
Correct |
2 ms |
384 KB |
Output is correct |
42 |
Correct |
2 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
384 KB |
Output is correct |
2 |
Correct |
45 ms |
2740 KB |
Output is correct |
3 |
Correct |
26 ms |
2816 KB |
Output is correct |
4 |
Correct |
147 ms |
18952 KB |
Output is correct |
5 |
Correct |
129 ms |
19352 KB |
Output is correct |
6 |
Correct |
443 ms |
37800 KB |
Output is correct |
7 |
Correct |
34 ms |
2688 KB |
Output is correct |
8 |
Correct |
263 ms |
25236 KB |
Output is correct |
9 |
Correct |
190 ms |
25540 KB |
Output is correct |
10 |
Correct |
217 ms |
25440 KB |
Output is correct |
11 |
Correct |
239 ms |
20076 KB |
Output is correct |
12 |
Correct |
213 ms |
28904 KB |
Output is correct |
13 |
Correct |
182 ms |
20152 KB |
Output is correct |
14 |
Correct |
418 ms |
37740 KB |
Output is correct |
15 |
Correct |
449 ms |
37980 KB |
Output is correct |
16 |
Correct |
2 ms |
384 KB |
Output is correct |
17 |
Correct |
3 ms |
384 KB |
Output is correct |
18 |
Correct |
2 ms |
384 KB |
Output is correct |
19 |
Correct |
2 ms |
384 KB |
Output is correct |
20 |
Correct |
2 ms |
384 KB |
Output is correct |
21 |
Correct |
2 ms |
384 KB |
Output is correct |
22 |
Correct |
2 ms |
384 KB |
Output is correct |
23 |
Correct |
3 ms |
384 KB |
Output is correct |
24 |
Correct |
2 ms |
384 KB |
Output is correct |
25 |
Correct |
2 ms |
384 KB |
Output is correct |