提出 #46895210
ソースコード 拡げる
#include<bits/stdc++.h>
#define LL long long
#define DB double
#define MOD 1000000007
#define ls(x) (x << 1)
#define rs(x) (x << 1 | 1)
#define lowbit(x) ((-x) & x)
#define MP make_pair
#define MT make_tuple
#define VI vector<int>
#define VL vector<LL>
#define VII VI::iterator
#define VLI VL::iterator
#define all(x) x.begin(), x.end()
#define EB emplace_back
#define PII pair<int, int>
#define SI set<int>
#define SII SI::iterator
#define fi first
#define se second
using namespace std;
template<typename T> void chkmn(T &a, const T b) { (a > b) && (a = b); }
template<typename T> void chkmx(T &a, const T b) { (a < b) && (a = b); }
void Inc(int &a, const int &b) { ((a += b) >= MOD) && (a -= MOD); }
void Dec(int &a, const int &b) { ((a -= b) < 0) && (a += MOD); }
void Mul(int &a, const int &b) { a = 1LL * a * b % MOD; }
void Sqr(int &a) { a = 1LL * a * a % MOD; }
int inc(const int &a, const int &b) { return (a + b >= MOD) ? a + b - MOD : a + b; }
int dec(const int &a, const int &b) { return (a - b < 0) ? a - b + MOD : a - b; }
int mul(const int &a, const int &b) { return 1LL * a * b % MOD; }
int sqr(const int &a) { return 1LL * a * a % MOD; }
int qwqmi(int x, int k = MOD - 2)
{
int res = 1;
while(k)
{
if(k & 1) Mul(res, x);
k >>= 1, Sqr(x);
}
return res;
}
const int N = 2e3 + 5;
const int INF = 1e9;
int n, a[N * 3];
int now = 0, lst = 1;
int f[2][N][N], maxf[2][N], ans;
vector<PII> vec;
void update_max(int x, int y, int v)
{
if(v == -INF) return;
chkmx(f[now][x][y], v);
chkmx(f[now][y][x], v);
chkmx(maxf[now][0], v);
chkmx(maxf[now][x], v);
chkmx(maxf[now][y], v);
vec.EB(MP(x, y));
}
void update1()
{
++ans;
}
void update2(int p, int q)
{
for(int x = 1; x <= n; ++x)
{
int w = max(f[lst][x][p], f[lst][p][x]);
if(w != -INF) update_max(x, q, w + 1);
}
}
void update3(int p, int q, int r)
{
int w = 7210721;
w = f[lst][p][p]; if(w != -INF) update_max(q, r, w + 1);
w = f[lst][q][q]; if(w != -INF) update_max(p, r, w + 1);
w = f[lst][r][r]; if(w != -INF) update_max(p, q, w + 1);
}
void update4(int p, int q, int r)
{
update_max(p, q, maxf[lst][0]);
update_max(p, r, maxf[lst][0]);
update_max(q, r, maxf[lst][0]);
}
void update5(int p, int q, int r)
{
for(int x = 1; x <= n; ++x)
{
update_max(p, x, maxf[lst][x]);
update_max(q, x, maxf[lst][x]);
update_max(r, x, maxf[lst][x]);
}
}
void final_update()
{
for(auto P : vec)
{
int x = P.fi, y = P.se;
f[lst][x][y] = f[now][x][y];
f[lst][y][x] = f[now][y][x];
}
vec.clear();
for(int x = 0; x <= n; ++x)
maxf[lst][x] = maxf[now][x];
}
int main()
{
// freopen("1.in", "r", stdin);
// freopen("1.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= 3 * n; ++i)
scanf("%d", &a[i]);
for(int i = 0; i <= n; ++i)
for(int j = 0; j <= n; ++j)
f[0][i][j] = f[1][i][j] = -INF;
for(int x = 0; x <= n; ++x)
maxf[0][x] = maxf[1][x] = -INF;
update_max(a[1], a[2], 0);
final_update();
for(int i = 1; i < n; ++i)
{
int p = a[3 * i];
int q = a[3 * i + 1];
int r = a[3 * i + 2];
if(p == q && q == r)
{
update1();
continue;
}
else if(p == q) update2(p, r);
else if(p == r) update2(p, q);
else if(q == r) update2(q, p);
update3(p, q, r);
update4(p, q, r);
update5(p, q, r);
final_update();
}
int res = 0;
for(int x = 1; x <= n; ++x)
for(int y = 1; y <= n; ++y)
chkmx(res, f[now][x][y]);
chkmx(res, f[now][a[3 * n]][a[3 * n]] + 1);
ans += res;
printf("%d\n", ans);
return 0;
}
提出情報
コンパイルエラー
Main.cpp: In function ‘int main()’:
Main.cpp:108:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
108 | scanf("%d", &n);
| ~~~~~^~~~~~~~~~
Main.cpp:110:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
110 | scanf("%d", &a[i]);
| ~~~~~^~~~~~~~~~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
600 / 600 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample00, sample01, sample02 |
| All |
case03, case04, case05, case06, case07, case08, case09, case10, case11, case12, case13, case14, case15, case16, case17, case18, case19, case20, case21, case22, case23, case24, case25, case26, case27, case28, case29, case30, case31, case32, case33, case34, case35, case36, case37, case38, case39, case40, case41, case42, case43, case44, case45, case46, case47, case48, case49, case50, case51, case52, case53, case54, sample00, sample01, sample02 |
| ケース名 |
結果 |
実行時間 |
メモリ |
| case03 |
AC |
313 ms |
35216 KiB |
| case04 |
AC |
300 ms |
35444 KiB |
| case05 |
AC |
301 ms |
35108 KiB |
| case06 |
AC |
318 ms |
35276 KiB |
| case07 |
AC |
309 ms |
35416 KiB |
| case08 |
AC |
315 ms |
35188 KiB |
| case09 |
AC |
72 ms |
22552 KiB |
| case10 |
AC |
230 ms |
32360 KiB |
| case11 |
AC |
1 ms |
3876 KiB |
| case12 |
AC |
1 ms |
3732 KiB |
| case13 |
AC |
1 ms |
3736 KiB |
| case14 |
AC |
1 ms |
3736 KiB |
| case15 |
AC |
1 ms |
3840 KiB |
| case16 |
AC |
209 ms |
35288 KiB |
| case17 |
AC |
139 ms |
33320 KiB |
| case18 |
AC |
49 ms |
22316 KiB |
| case19 |
AC |
164 ms |
35292 KiB |
| case20 |
AC |
14 ms |
13056 KiB |
| case21 |
AC |
5 ms |
7872 KiB |
| case22 |
AC |
18 ms |
15484 KiB |
| case23 |
AC |
2 ms |
5688 KiB |
| case24 |
AC |
29 ms |
23344 KiB |
| case25 |
AC |
57 ms |
31684 KiB |
| case26 |
AC |
104 ms |
34648 KiB |
| case27 |
AC |
107 ms |
35004 KiB |
| case28 |
AC |
54 ms |
26284 KiB |
| case29 |
AC |
67 ms |
28768 KiB |
| case30 |
AC |
21 ms |
16308 KiB |
| case31 |
AC |
35 ms |
26536 KiB |
| case32 |
AC |
16 ms |
17568 KiB |
| case33 |
AC |
60 ms |
33224 KiB |
| case34 |
AC |
68 ms |
35116 KiB |
| case35 |
AC |
5 ms |
8096 KiB |
| case36 |
AC |
34 ms |
29408 KiB |
| case37 |
AC |
1 ms |
4416 KiB |
| case38 |
AC |
7 ms |
11576 KiB |
| case39 |
AC |
45 ms |
34616 KiB |
| case40 |
AC |
12 ms |
16248 KiB |
| case41 |
AC |
207 ms |
35188 KiB |
| case42 |
AC |
210 ms |
35088 KiB |
| case43 |
AC |
207 ms |
35168 KiB |
| case44 |
AC |
205 ms |
35304 KiB |
| case45 |
AC |
213 ms |
35192 KiB |
| case46 |
AC |
54 ms |
21308 KiB |
| case47 |
AC |
181 ms |
29800 KiB |
| case48 |
AC |
74 ms |
23376 KiB |
| case49 |
AC |
314 ms |
34936 KiB |
| case50 |
AC |
111 ms |
25856 KiB |
| case51 |
AC |
107 ms |
25820 KiB |
| case52 |
AC |
104 ms |
25768 KiB |
| case53 |
AC |
5 ms |
7396 KiB |
| case54 |
AC |
9 ms |
9088 KiB |
| sample00 |
AC |
1 ms |
3916 KiB |
| sample01 |
AC |
1 ms |
3644 KiB |
| sample02 |
AC |
1 ms |
3752 KiB |