3.19刷题
P6443 [COCI 2010/2011 #1] TIMSKO - 洛谷
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,k,maxp=0;
cin>>m>>n>>k;
for(int i=0;i<=n;i++){//男生参加人数
if(k+3*i<=m+n&&2*i<=m) maxp=i;
}
cout<<maxp;
return 0;
}
P6450 [COCI 2008/2009 #4] ROT - 洛谷
#include<bits/stdc++.h>
using namespace std;
char a[15][15];
int main(){
int r,c,k;
cin>>r>>c;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
cin>>a[i][j];
}
}
cin>>k;
if(k%360==0){
for(int i=0;i<r;i++){
for(int j=0;j<c;j++) cout<<a[i][j];
cout<<endl;
}
}else if(k%360==45){
for(int i=0;i<r+c;i++){
for(int z=0;z<abs(r-i-1);z++) cout<<" ";//列数减去行数为空格数
for(int z=r-1;z>=0;z--){
for(int j=c-1;j>=0;j--){
if(z+j==i)//行加上列是输出的行数(从0开始)
cout<<a[z][j]<<" ";
}
}cout<<endl;
}
}else if(k%360==90){
for(int i=0;i<c;i++){
for(int j=r-1;j>=0;j--){
cout<<a[j][i];
}
cout<<endl;
}
}else if(k%360==135){
for(int i=0;i<r+c;i++){
for(int z=0;z<abs(c-i-1);z++) cout<<" ";
for(int z=r-1;z>=0;z--){
for(int j=0;j<c;j++){
if(z-j==r-i-1) cout<<a[z][j]<<" ";
}
}
cout<<endl;
}
}else if(k%360==180){
for(int i=r-1;i>=0;i--){
for(int j=c-1;j>=0;j--){
cout<<a[i][j];
}
cout<<endl;
}
}else if(k%360==225){
for(int i=0;i<r+c;i++){
for(int z=0;z<abs(r-i-1);z++) cout<<" ";
for(int z=0;z<r;z++){
for(int j=0;j<c;j++){
if(z+j==r+c-2-i) cout<<a[z][j]<<" ";
}
}
cout<<endl;
}
}else if(k%360==270){
for(int i=c-1;i>=0;i--){
for(int j=0;j<r;j++){
cout<<a[j][i];
}cout<<endl;
}
}else if(k%360==315){
for(int i=0;i<r+c;i++){
for(int z=0;z<abs(c-i-1);z++) cout<<" ";
for(int z=0;z<r;z++){
for(int j=0;j<c;j++){
if(c-1-i==j-z) cout<<a[z][j]<<" ";
}
}
cout<<endl;
}
}
return 0;
}
P6461 [COCI 2006/2007 #5] TRIK - 洛谷
#include<bits/stdc++.h>
using namespace std;
int flag[4];
int main(){
string s;
cin>>s;
flag[1]=1;
for(int i=0;i<s.size();i++){
if(s[i]=='A') swap(flag[1],flag[2]);
else if(s[i]=='B') swap(flag[2],flag[3]);
else if(s[i]=='C') swap(flag[1],flag[3]);
}
for(int i=1;i<=3;i++){
if(flag[i]==1){
cout<<i;
break;
}
}
return 0;
}
P6488 [COCI 2010/2011 #6] OKUPLJANJE - 洛谷
#include<bits/stdc++.h>
using namespace std;
long long flag[5],sum;
int main(){
long long l,p;
cin>>l>>p;
for(int i=0;i<5;i++) cin>>flag[i];
sum=l*p;
for(int i=0;i<5;i++) cout<<flag[i]-sum<<" ";
return 0;
}
P6489 [COCI 2010/2011 #6] USPON - 洛谷
#include<bits/stdc++.h>
using namespace std;
int a[1010];
int main(){
int n,ansmax=0,b=0,e=0,flag=0;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=1;i<n;i++){
if(a[i-1]<a[i]){
if(flag==0) b=a[i-1],e=a[i],flag=1;
else e=a[i];
}else if(a[i-1]>=a[i]){
ansmax=max(e-b,ansmax);
flag=0;
b=0,e=0;
}
}
ansmax=max(e-b,ansmax);
cout<<ansmax;
return 0;
}
P6500 [COCI 2010/2011 #3] ZBROJ - 洛谷
#include<bits/stdc++.h>
using namespace std;
int aa[10],bb[10];
long long change(int *a,int n,int before,int after){
for(int i=0;i<n;i++){
if(a[i]==before) a[i]=after;
}
long long sum=0;
for(int i=0;i<n;i++){
sum+=a[i]*pow(10,i);
}
return sum;
}
int main(){
long long sumt=0,sumf_min,sumf_max,a,b,c,d;
int i=0,j=0;
cin>>a>>b;
sumt=a+b;
while(a){
aa[i++]=a%10;
a/=10;
}
while(b){
bb[j++]=b%10;
b/=10;
}
c=change(aa,i,6,5);
d=change(bb,j,6,5);
sumf_min=c+d;
c=change(aa,i,5,6);
d=change(bb,j,5,6);
sumf_max=c+d;
cout<<min(min(sumt,sumf_max),sumf_min)<<" "<<max(max(sumt,sumf_max),sumf_min);
return 0;
}
P6529 [COCI 2015/2016 #1] KARTE - 洛谷
#include<bits/stdc++.h>
using namespace std;
int p[20],k[20],h[20],t[20];
int to_int(char a,char b){
return int(a-'0')*10+int(b-'0');
}
int find_ling(int *a){
int ans=0;
for(int i=1;i<=13;i++){
if(a[i]==0) ans++;
}
return ans;
}
int main(){
string s;
int x,flag=0;
cin>>s;
for(int i=0;i<s.size();i+=3){
if(s[i]=='P'){
x=to_int(s[i+1],s[i+2]);
if(p[x]==0) p[x]=1;
else flag=1;
}else if(s[i]=='K'){
x=to_int(s[i+1],s[i+2]);
if(k[x]==0) k[x]=1;
else flag=1;
}else if(s[i]=='H'){
x=to_int(s[i+1],s[i+2]);
if(h[x]==0) h[x]=1;
else flag=1;
}else if(s[i]=='T'){
x=to_int(s[i+1],s[i+2]);
if(t[x]==0) t[x]=1;
else flag=1;
}
}
if(flag==1) cout<<"GRESKA";
else{
cout<<find_ling(p)<<" "<<find_ling(k)<<" "<<find_ling(h)<<" "<<find_ling(t);
}
return 0;
}
P6530 [COCI 2015/2016 #1] AKCIJA - 洛谷
#include<bits/stdc++.h>
using namespace std;
int c[100010];
int main(){
int n,yu;
long long sum=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>c[i];
sort(c+1,c+1+n);
yu=n%3;
for(int i=1;i<=yu;i++) sum+=c[i];
for(int i=yu+1;i<=n;i+=3) sum+=c[i+1]+c[i+2];
cout<<sum;
return 0;
}
P6565 [NOI Online #3 入门组] 最急救助 - 洛谷
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,ans,max_ans=0,k=0;
string name,sig,max_name[110];
cin>>n;
for(int i=0;i<n;i++){
cin>>name>>sig;
ans=0;
for(int i=1;i<sig.size()-1;i++){
if(sig[i-1]=='s'&&sig[i]=='o'&&sig[i+1]=='s') ans++;
}
if(ans>max_ans){
max_ans=ans;
for(int j=0;j<k;j++) max_name[j]="";
k=0;
max_name[k++]=name;
}
else if(ans==max_ans) max_name[k++]=name;
}
for(int i=0;i<k;i++) cout<<max_name[i]<<" ";
cout<<endl<<max_ans;
return 0;
}
P6581 远大目标 - 洛谷
#include<bits/stdc++.h>
using namespace std;
int main(){
long long o;
unsigned long long x;
cin>>o;
if(o<=0) cout<<0;
else {
x=o;
cout<<2*x-1;
}
return 0;
}