Codeforences #351 VK CUP
[제의] 이렇게 많은 시간을 주었는데 이 시간들은 인터럽트 포인트입니다. 15분 동안 인터럽트 포인트가 나타나지 않으면 바꿔야 합니다.제일 오래 볼 수 있냐고 물어봐요.
[분석] 직접 시뮬레이션을 하면 된다.
[AC 코드]
#include <bits/stdc++.h>
using namespace std;
int a[100];
int main(){
int n;
while(~scanf("%d",&n)){
for(int i=1; i<=n; i++){
scanf("%d",&a[i]);
}
if(a[1]>15){
puts("15");
return 0;
}
for(int i=2; i<=n; i++){
if(a[i]-a[i-1]>15){
printf("%d
",a[i-1]+15);
return 0;
}
}
if(a[n]<75)
{
cout<<a[n]+15<<endl;
}
else{
cout<<"90"<<endl;
}
}
return 0;
}
【B. Problems for Round】
[제의] 1부터 n까지 이 수를 두 용기에 넣으면 첫 번째 용기의 그 어떤 수도 두 번째 용기의 그 어떤 수보다 작아야 한다. 그리고 비슷한 것은 한 조각도 넣을 수 없고 비슷한 것은 전달성이 없다.
【분석】 두 용기의 첫 번째는 최대치를 기록하고 두 번째는 최소치를 기록한다. 한 쌍의 비슷한 수에 대해 작은 것은 첫 번째에 놓고 큰 것은 두 번째에 놓는다. 동시에 최대치의 최소치를 충족시키는지 검사하고 최대치를 갱신해야 한다. 답은 두 개의 차이다!
[AC 코드]
#include <bits/stdc++.h>
using namespace std;
int a[100010];
const int INF = 0x3f3f3f3f;
int main(){
int n,m,u,v,maxx=-1,minn=INF,ans;
cin>>n>>m;
for(int i=1; i<=m; i++){
cin>>u>>v;
if(u>v)swap(u,v);
maxx = max(maxx,u);
minn = min(minn,v);
}
if(m==0)ans=n-1;
else{
if(minn<maxx) ans=0;
else ans = minn-maxx;
}
cout<<ans<<endl;
return 0;
}
【C. Bear and Colors】
[제의] 이렇게 많은 색깔을 제시했는데 한 서열에서dominant는 가장 많이 나온 숫자입니다. 만약에 가장 많이 나온 것이 하나가 아니라면 가장 작은 숫자입니다.
[분석] 바로 폭력 통계가 나옵니다.
[AC 코드]
#include <bits/stdc++.h>
using namespace std;
int n,a[5010];
int ans[5010];
int temp;
int main(){
cin>>n;
for(int i=1; i<=n; i++) cin>>a[i];
for(int i=1; i<=n; i++){
int cnt[5010]={0};
int maxx=-1;
for(int j=i; j<=n; j++){
cnt[a[j]]++;
if(cnt[a[j]]>maxx){
maxx = cnt[a[j]];
temp = a[j];
}else if(cnt[a[j]]==maxx&&a[j]<temp){
temp = a[j];
}
ans[temp]++;
}
}
for(int i=1; i<=n; i++)cout<<ans[i]<<" ";
return 0;
}
【D. Bear and Two Paths】
[제의] n개의 노드를 제시한 다음에 두 노선의 기점과 종점을 제시한다. 당신은 무방향도를 구성하여 무방향도에서 a, b간과 c, d간에 직접적으로 연결된 변이 없고 이 그림의 변의 수가 k를 초과하지 않도록 요구한다.
【분석】 n=4를 발견했을 때 아무리 해도 만족할 수 없었고 이런 무방향도를 구성할 수 있었다. 첫 번째 노선ac...db;두 번째 노선ca...bd, 이런 변은 n+1개로 가장 적다
[AC 코드]
#include <bits/stdc++.h>
using namespace std;
int n,k,a,b,c,d;
int ans[1010],vis[1010];
int main(){
cin>>n>>k;
cin>>a>>b>>c>>d;
memset(vis,0,sizeof(vis));
memset(ans,0,sizeof(ans));
vis[a]=vis[b]=vis[c]=vis[d]=1;
if(k<n+1||n==4){
puts("-1");
return 0;
}
ans[1]=a,ans[2]=c,ans[n-1]=d,ans[n]=b;
int pos=3;
for(int i=1; i<=n; i++){
if(!vis[i]) ans[pos++]=i;
}
for(int i=1; i<=n; i++)cout<<ans[i]<<" ";cout<<endl;
cout<<ans[2]<<" "<<ans[1]<<" ";
for(int i=3; i<=n-2; i++)cout<<ans[i]<<" ";
cout<<ans[n]<<" "<<ans[n-1]<<endl;
return 0;
}
[ps: 뒷문제는 당분간 QAQ를 풀 수 없습니다.]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.