Codeforces Round #258(Div. 2) 요약
2933 단어 codeforces
물문제는 하나인데 사실 네가 어떤 교차점을 선택하든지 결과는 줄의 수열을 모두 하나로 줄인다. 그러면 지금 누가 먼저 줄, 열을 0으로 줄이면 누가 이길 것이다.Akshat이 먼저 선택했기 때문에 행렬에서 가장 작은 것이 홀수라고 가정하면 Akshat이 이기고 그렇지 않으면 Malvika가 이긴다.
코드:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int a, b;
while(~scanf("%d%d", &a, &b))
{
int minn = a>b?b:a;
if(minn%2==0)
printf("Malvika
");
else
printf("Akshat
");
}
return 0;
}
B. 451B - Sort the Array (451B)
한 번 뒤집기를 통해 수조를 승차순으로 바꿀 수 있는지 고찰하다.사실 첫 번째 하락한 위치와 그 다음 첫 번째 상승한 위치를 고려하여 경계치의 크기를 추정하는 것이다. 세심하면 매우 easy가 발견했다.다만 이 문제는 문제점이 많다. 비록 Pretest Pass가 되었지만, 마지막에 WA가 되었다. output 안에 한 가지 조건을 고려하지 않았기 때문이다. 바로 (start must not be greater than end)이다.추단 조건을 적게 쓰게 되니 정말 구덩이가 된다.
코드:
By dzk_acmer, contest: Codeforces Round #258 (Div. 2), problem: (B) Sort the Array, Accepted, #
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n, a[100010];
while(~scanf("%d", &n))
{
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
if(n == 1)
{
printf("yes
1 1
");
continue;
}
if(n == 2)
{
printf("yes
");
if(a[1] < a[2])
printf("1 1
");
else
printf("1 2
");
continue;
}
int st = 1, ed = n, up = 0, down = 0;
for(int i = 2; i < n; i++)
{
if(a[i] > a[i-1] && a[i] > a[i+1])
{
up++;
st = i;
}
if(a[i] < a[i-1] && a[i] < a[i+1])
{
down++;
ed = i;
}
}
a[0] = -100;
a[n+1] = 1e9+2;
if(up >= 2 || down >= 2 || st >= ed || a[st] > a[ed+1] || a[ed] < a[st-1])
{
printf("no
");
continue;
}
printf("yes
");
if(a[st] > a[ed])
printf("%d %d
", st, ed);
else
printf("1 1
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Codeforces Round #715 Div. 2C The Sports Festival: 구간 DP전형구간 DP의 초전형. 이하, 0-indexed. 입력을 정렬하여 어디서나 시작하고 최적으로 좌우로 계속 유지하면 좋다는 것을 알 수 있습니다. {2000})$의 주문이 된다. 우선, 입력을 소트하여 n개의 요소를 $...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.