結果
| 問題 |
No.335 門松宝くじ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-02-04 18:03:02 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,621 bytes |
| コンパイル時間 | 547 ms |
| コンパイル使用メモリ | 57,656 KB |
| 実行使用メモリ | 8,520 KB |
| 最終ジャッジ日時 | 2024-09-21 20:30:59 |
| 合計ジャッジ時間 | 7,697 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 WA * 1 |
| other | AC * 4 WA * 6 |
ソースコード
#include <iostream>
#include <memory.h>
long long N;
long long M;
long long E[3][800];
long long memo[800][800];
long long is_kadomatu(long long a, long long b, long long c)
{
if (a > b && b > c) return 0;
if (a < b && b < c) return 0;
return 1;
}
long long f(long long *e)
{
long long ans = 0;
long long cnt = 0;
memset(memo, 0, sizeof(memo));
for (long long n1 = 0; n1 < N; n1++) {
for (long long n2 = n1+1; n2 < N; n2++) {
for (long long n3 = n2+1; n3 < N; n3++) {
if (is_kadomatu(e[n1], e[n2], e[n3])) {
long long r = std::max(e[n1], std::max(e[n2], e[n3]));
memo[n1][n2] = std::max(memo[n1][n2], r);
memo[n2][n3] = std::max(memo[n2][n3], r);
memo[n1][n3] = std::max(memo[n1][n3], r);
}
}
}
}
for (long long n1 = 0; n1 < N; n1++) {
for (long long n2 = n1+1; n2 < N; n2++) {
if (memo[n1][n2] > 0) {
ans += memo[n1][n2];
cnt += 1;
}
}
}
if (cnt == 0) return 0;
return ans / cnt;
}
long long f()
{
long long ans = 0;
long long k = 0;
for (long long m = 0; m < M; m++) {
long long r = f(E[m]);
if (r > k) {
k = r;
ans = m;
}
}
return ans;
}
int main()
{
std::cin >> N;
std::cin >> M;
for (long long m = 0; m < M; m++) {
for (long long n = 0; n < N; n++) {
std::cin >> E[m][n];
}
}
std::cout << f() << std::endl;
return 0;
}