1031 查验身份证
#include
using namespace std;
int a[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int b[11]={1, 0, 10 ,9 ,8 ,7 ,6, 5, 4, 3 ,2};
string s;
bool isTrue(){
int sum=0;
for(int i=0;i<17;i++){
if(s[i]<'0'||s[i]>'9') return false;
sum+=(s[i]-'0')*a[i];
}
int temp=(s[17]=='X')?10:(s[17]-'0');
return b[sum%11]==temp;
}
int main(){
int n,flag=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>s;
if(!isTrue()){
cout<<s<<endl;
flag=1;
}
}
if(flag==0) cout<<"All passed";
return 0;
}
1032 挖掘机技术哪家强
#include
#include
using namespace std;
int main(){
int n;
cin>>n;
vector<int> a(n+1);
int num,score;
for(int i=0;i<n;i++){
cin>>num>>score;
a[num]+=score;
}
int mmax=a[1],t=1;
for(int i=2;i<n+1;i++){
if(mmax<a[i]){
mmax=a[i];
t=i;
}
}
cout<<t<<" "<<mmax;
return 0;
}
1033 旧键盘打字
#include
#include
using namespace std;
int main(void){
string bad,should;
getline(cin,bad);getline(cin,should);
for(int i=0;i<should.size();i++){
if(bad.find(toupper(should[i]))!=string::npos) continue;
if(isupper(should[i])&&bad.find('+')!=string::npos) continue;
cout<<should[i];
}
}
1034 有理数四则运算
#include
#include
using namespace std;
long long a,b,c,d;
long long gcd(long long t1,long long t2){
return t2==0?t1:gcd(t2,t1%t2);
}
void func(long long m,long long n){
if(m*n==0){
printf("%s",n==0?"Inf":"0");
return ;
}
bool flag=((m<0&&n>0)||(m>0&&n<0));
m=abs(m);n=abs(n);
long long x=m/n;
printf("%s",flag?"(-":"");
if(x!=0) printf("%lld",x);
if(m%n==0){
if(flag) printf(")");
return ;
}
if(x!=0) printf(" ");
m=m-x*n;
long long t=gcd(m,n);
m=m/t;n=n/t;
printf("%lld/%lld%s",m,n,flag?")":"");
}
int main(){
scanf("%lld/%lld %lld/%lld", &a, &b, &c, &d);
func(a,b);printf(" + ");func(c,d);printf(" = ");func(a*d+b*c,b*d);cout<<endl;
func(a,b);printf(" - ");func(c,d);printf(" = ");func(a*d-b*c,b*d);cout<<endl;
func(a,b);printf(" * ");func(c,d);printf(" = ");func(a*c,b*d);cout<<endl;
func(a,b);printf(" / ");func(c,d);printf(" = ");func(a*d,b*c);cout<<endl;
return 0;
}
1035 插入与归并
#include
#include
using namespace std;
int main(void){
int n,a[100],b[100],i,j;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
cin>>b[i];
for(i=0;i<n-1&&b[i]<=b[i+1];i++);
for(j=i+1;a[j]==b[j]&&j<n;j++);
if(j==n){
cout<<"Insertion Sort"<<endl;
sort(a,a+i+2);
}
else{
cout<<"Merge Sort"<<endl;
int k=1,flag=1;
while(flag){
flag=0;
for(int i=0;i<n;i++){
if(a[i]!=b[i])
flag=1;
}
k=k*2;
for(i=0;i<n/k;i++)
sort(a+i*k,a+(i+1)*k);
sort(a+n/k*k,a+n);
}
}
for(j=0;j<n;j++){
if(j!=0) printf(" ");
printf("%d",a[j]);
}
return 0;
}
1036 跟奥巴马一起编程
#include
using namespace std;
int main(){
int n;char c;
cin>>n>>c;
for(int i=0;i<n;i++)
cout<<c;
cout<<endl;
for(int i=0;i<n/2+n%2-2;i++){
cout<<c;
for(int j=0;j<n-2;j++)
cout<<" ";
cout<<c<<endl;
}
for(int i=0;i<n;i++)
cout<<c;
}
1037 在霍格沃茨找零钱
#include
using namespace std;
int main(){
int a,b,c,m,n,t,x,y,z;
scanf("%d.%d.%d %d.%d.%d",&a,&b,&c,&m,&n,&t);
if((a>m)||(a==m&&b>n)||(a==m&&b==n&&c>t)){
swap(a,m);swap(b,n);swap(c,t);
cout<<"-";
}
z=t<c?t+29-c:t-c;
n=t<c?n-1:n;
y=n<b?n-b+17:n-b;
x=n<b?m-a-1:m-a;
printf("%d.%d.%d",x,y,z);
return 0;
}
1038 统计同成绩学生
#include
#include
using namespace std;
int main(){
int n,m,temp;
cin>>n;
vector<int> b(101);
for(int i=0;i<n;i++){
cin>>temp;
b[temp]++;
}
cin>>m;
for(int i=0;i<m;i++){
cin>>temp;
if(i!=0) cout<<" ";
cout<<b[temp];
}
return 0;
}
1039 到底买不买
#include
#include
using namespace std;
int book[256];
int main(){
string a,b;
cin>>a>>b;
for(int i=0;i<a.size();i++)
book[a[i]]++;
int res=0;
for(int i=0;i<b.size();i++)
if(book[b[i]]>0)
book[b[i]]--;
else
res++;
if(res!=0)
cout<<"No "<<res;
else
cout<<"Yes "<<a.size()-b.size();
return 0;
}
1040 有几个PAT
#include
#include
using namespace std;
int main(){
string s;
cin>>s;
int len=s.size(),p_cnt=0,t_cnt=0,res=0;
for(int i=0;i<len;i++){
if(s[i]=='T')
t_cnt++;
}
for(int i=0;i<len;i++){
if(s[i]=='P') p_cnt++;
if(s[i]=='T') t_cnt--;
if(s[i]=='A') res=(res+(p_cnt*t_cnt)%1000000007)%1000000007;
}
cout<<res;
return 0;
}