csp201312-01 c++
注:输入的x表示下标,出现一次对应数组元素加一起到计数的作用。
#include <iostream>
using namespace std;
const int N=10000;
int s[N+1];
int main(){
int n,x,_max=0;
cin>>n;
while(n--){
cin>>x;
s[x]++;
_max=max(_max,x);
}
int k=0;
for(int i=1; i<=_max;i++){
if(s[k]<s[i]){
k=i;
}
}
cout<<k<<endl;
return 0;
}
csp201312-02 c++
#include<iostream>
using namespace std;
const int N=13;
char str[13];
int main(){
for(int i=0;i<13;i++){
cin>>str[i];
}
int count=0,sum=0;
for(int i=0;i<12;i++){
if(str[i]=='-'){
count ++;
continue;
}else {
sum+=int(str[i]-'0')*(i+1-count);
}
}
char mod=sum%11+'0';
if(mod==str[12]||(sum%11==10&&'X'==str[12])){
cout<<"Right"<<endl;
return 0;
}else{
if(sum%11==10)
str[12]='X';
else
str[12]=mod;
}
cout<<str<<endl;
return 0;
}
csp201312-03c++
#include <iostream>
using namespace std;
const int N=10000;
int s[N+1],sum[N+1];
int main(){
int n,x,count=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>x;
s[i]=x;
}
for(int j=0;j<n;j++){
if(j==0){
count=0;
for(int p=0;p<n;p++){
if(s[p]>=s[j])
count++;
else
break;
}
sum[0]=s[0]*count;
}
else if(j==n-1){
count=0;
for(int p=n-1;p>=0;p--){
if(s[p]>=s[j])
count++;
else
break;
}
sum[n-1]=s[n-1]*(count);
}
else{
count=0;
for(int p=j;p<n;p++){
if(s[p]>=s[j])
count++;
else
break;
}
for(int q=j;q>=0;q--){
if(s[q]>=s[j])
count++;
else
break;
}
sum[j]=s[j]*(count-1);
}
}
int _max=sum[0];
for(int i=0;i<n;i++){
if(sum[i]>_max)
_max=sum[i];
}
cout<<_max<<endl;
}