#YGAP11. 阅读题集锦(六)
阅读题集锦(六)
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int a=n/1000;
int b=n/100%10;
int c=n/10%10;
int d=n%10;
cout<<d*1000+c*100+b*10+a;
return 0;
}
//输入:5340
1.运行结果:{{ input(1) }}
#include<bits/stdc++.h>
using namespace std;
long long a,b;
int main() {
scanf("%lld %lld",&a,&b);
while(a!=b){
if(a>b) a=a-b;
else b=b-a;
}
printf("%lld",a);
return 0;
}
//输入:100 12
2.运行结果:{{ input(2) }}
#include<bits/stdc++.h>
using namespace std;
int len,ans;
string t,s;
bool flag;
long long cn;
int main() {
cin>>cn;
while(cn--){
cin>>s;
len=s.size();
for(int i=0;i<len;i++)
t+=s[len-i-1];
flag=true;
for(int i=1;i<len;i++){
if(abs(s[i]-s[i-1])!=abs(t[i]-t[i-1]))
flag=false;
}
ans+=flag;
}
cout<<ans;
return 0;
}
/*
输入
5
acxz
bcxz
asdgqwe
asdffe
asde
*/
3.运行结果:{{ input(3) }}
#include<bits/stdc++.h>
using namespace std;
const int NN=111111;
int a[NN],pre[NN],suf[NN],st[NN];
int i,n,x,cnt,ans;
int Func(int x,int y){
int res=x;
if(x<y) res=y;
return res;
}
int main() {
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",a+i);
cnt=1;
st[cnt]=n;
for(i=n-1;i>=1;i--){
x=a[i];
while(cnt && (x>=a[st[cnt]])) cnt--;
suf[i]=st[cnt];
cnt++;
st[cnt]=i;
}
cnt=1;
st[cnt]=1;
for(i=2;i<=n;i++){
x=a[i];
while(cnt && (x>=a[st[cnt]])) cnt--;
pre[i]=st[cnt];
cnt=cnt+1;
st[cnt]=i;
}
for(i=1;i<=n;i++)
ans=Func(ans,pre[i]*suf[i]);
printf("%d",ans);
return 0;
}
/*
输入
5
5 4 3 4 5
*/
4.运行结果:{{ input(4) }}
#include<bits/stdc++.h>
using namespace std;
long long x;
bool flag;
int main() {
scanf("%lld",&x);
flag=0;
if(x%4==0 && x%100!=0) flag=1;
if(x%400==0) flag=1;
if(flag) printf("leap year!");
else printf("not a leap year!");
return 0;
}
//输入:1234
5.运行结果:{{ input(5) }}
#include<bits/stdc++.h>
using namespace std;
long long a[100][100];
long long i,j,n,t,x,y,cnt,ans;
int main() {
scanf("%lld",&n);
x=1,y=0;
for(i=1;i<=n;i++){
for(j=1;j<=n*2-i+1;j++){
y++;
cnt++;
a[x][y]=cnt;
}
for(j=1;j<=n*2-i;j++){
x++;
cnt++;
a[x][y]=cnt;
}
for(j=1;j<=n*2-i;j++){
y--;
cnt--;
a[x][y]=cnt;
}
for(j=1;j<=n*2-i-1;j++){
x--;
cnt--;
a[x][y]=cnt;
}
}
scanf("%lld",&t);
ans=0;
for(i=1;i<=n*2;i++) ans+=a[t][i];
printf("%lld\n",ans);
return 0;
}
//输入:3 2
6.运行结果:{{ input(6) }}
#include<bits/stdc++.h>
using namespace std;
int f(int x){
if(x==0) return 0;
else if(x%2==0) return f(x-1)+2;
else return f(x-1)+1;
}
int main() {
int t;
cin>>t;
cout<<f(t);
return 0;
}
//输入2014
7.运行结果:{{ input(7) }}
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int c[N],q[N],d[N],e[N],ans[N];
int n;
void merge(int L,int R){
int mid=(L+R)/2;
if(L<mid) merge(L,mid);
if(mid+1<R) merge(mid+1,R);
int p=0,i=L,j=mid+1;
while(i<=mid && j<=R){
if(c[i]>=c[j]){
d[++p]=c[i];
e[p]=q[i++];
}else{
d[++p]=c[j];
e[p]=q[j++];
ans[e[p]]+=(mid-i+1);
}
}
while(i<=mid && j>R){
d[++p]=c[i];
e[p]=q[i++];
}
while(i>mid && j<=R){
d[++p]=c[j];
e[p]=q[j++];
}
for(i=L;i<=R;i++){
c[i]=d[i-L+1];
q[i]=e[i-L+1];
}
}
int main() {
cin>>n;
for(int i=1;i<=n;i++){
cin>>c[i];
q[i]=i;
}
merge(1,n);
for(int i=1;i<=n;i++) cout<<ans[i];
return 0;
}
/*
输入
5
4 3 1 2 5
*/
8.运行结果:{{ input(8) }}
