切了一波水题
A 水
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main()
{
int n,c,p[55],t[55];
int sum1=0,sum2=0;
scanf("%d%d",&n,&c);
for(int i=0;i<n;i++)
scanf("%d",&p[i]);
for(int i=0;i<n;i++)
scanf("%d",&t[i]);
int tie=0;
for(int i=0;i<n;i++)
{
tie+=t[i];
sum1+=max(0,p[i]-tie*c);
}
tie=0;
for(int i=n-1;i>=0;i--)
{
tie+=t[i];
sum2+=max(0,p[i]-tie*c);
}
if(sum1>sum2)
printf("Limak\n");
else if(sum1<sum2)
printf("Radewoosh\n");
else
printf("Tie\n");
return 0;
}
B 水
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
int t[150005];
int dy[10];
int main()
{
int n,q,k;
scanf("%d%d%d",&n,&k,&q);
for(int i=1;i<=n;i++)
scanf("%d",&t[i]);
int a,b;
int j=0;
while(q--)
{
scanf("%d%d",&a,&b);
if(a==1)
{
if(j<k)
{
dy[j++]=t[b];
}
else
{
sort(dy,dy+k);
if(t[b]>dy[0])
dy[0]=t[b];
}
}
else
{
int l;
for(l=0;l<k;l++)
if(dy[l]==t[b])
{
printf("YES\n");
break;
}
if(l==k) printf("NO\n");
}
}
return 0;
}
C 很容易漏情况,要细心
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n,d,h;
scanf("%d%d%d",&n,&d,&h);
if( d > n-1 || d<h || d>2*h || d==1 && n>2)
{
printf("-1\n");
return 0;
}
int i=1;
for(int j=0;j<h;j++)
{
printf("%d %d\n",i,i+1);
i++;
}
i++;
d-=h;
if(!d)
{
for(i;i<=n;i++)
printf("2 %d\n",i);
return 0;
}
if(d)
{
printf("1 %d\n",i);
d--;
}
while(d--)
{
printf("%d %d\n",i,i+1);
i++;
}
i++;
for(i;i<=n;i++)
{
printf("1 %d\n",i);
}
return 0;
}