NYOJ 122
#include<stdio.h>
int main()
{
int m,n,k,i;
int T[400],sum[400];
scanf("%d",&m);
T[0]=0;
for(i=1;i<=303;i++)
T[i]=T[i-1]+i;
sum[0]=0;
for(i=1;i<=300;i++)
sum[i]=sum[i-1]+T[i+1]*i;
for(i=1;i<=m;i++)
{
scanf("%d",&n);
k=sum[n];
printf("%d %d %d\n",i,n,k);
}
return 0;
}
NYOJ 124
法一:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int k,a[1005];
scanf("%d",&k);
for(int i=1;i<=k;i++)
scanf("%d",&a[i]);
for(int i=1,t=0;i<k;i++)
{
for(int j=i+1;j<=k;j++)
if(a[i]>a[j])
{
a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
}
t++;
if(t>k/2+2) break;
}
if(k%2==1)
printf("%d\n",a[(k+1)/2]);
else
printf("%d\n",(a[k/2]+a[k/2+1])/2);
}
return 0;
}
法二:
#include<stdio.h>
int o;
int f(int *a,int first,int last){
int i=first,j=last,k=a[first];
while(i<j){
while(j>i&&a[j]>=k)
j--;
a[i]=a[j];
while(i<j&&a[i]<=k)
i++;
a[j]=a[i];
}
a[i]=k;
if(i==o)
return a[i];
else if(i>o)
return f(a,first,i-1);
else
return f(a,i+1,last);
}
main(){
int a[10000],n,m,i1;
scanf("%d",&n);
while(n--){
scanf("%d",&m);
for(i1=0;i1<m;i1++){
scanf("%d",&a[i1]);
}
o=m/2;
printf("%d\n",f(a,0,m-1));
}
}
NYOJ125
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int n,m,i,t ,s,w;;
char str[10];
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
s = 0; w = 1; i= 0;
while(m--)
{
scanf("%s",&str);
if(strcmp(str , "IN")==0)
w *= 20;
else if(strcmp(str , "STAY")==0)
{
scanf("%d",&t);
s += (t*60)/w;
}
else
{i--;w /=20;}
}
printf("%d\n",s);
}
return 0;
}