第一题
水题
#include <iostream> using namespace std; int main(){ int n,m; cin>>n>>m; if(n>=m){ cout<<n-m<<endl; } else{ cout<<0<<endl; } return 0; }
第二题
水题
1 #include <bits/stdc++.h> 2 using namespace std; 3 char a[100005],b[100005]; 4 int main(){ 5 cin>>a; 6 int j=0; 7 for(int i=0;i<strlen(a);i=i+2){ 8 b[j++]=a[i]; 9 } 10 cout<<b<<endl; 11 return 0; 12 }
第三题
直接找左右相邻的个数相加,然后比较大小就可以.
#include <bits/stdc++.h> #define N 100005 using namespace std; int k[N],a[N],b[N]; int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); b[a[i]]++; } int ma=0; for(int i=0;i<n;i++){ if(a[i]==0) k[a[i]]=b[a[i]]+b[a[i]+1]; else k[a[i]]=b[a[i]-1]+b[a[i]]+b[a[i]+1]; ma=max(k[a[i]],ma); } printf("%d ",ma); return 0; }
第四题
就是当前位置上的数不能等于这个位置a[i]!=i.
#include <bits/stdc++.h> #define N 100005 using namespace std; int a[N]; int main(){ int n,count=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ if(a[i]==i){ count++; i++; } } cout<<count<<endl; return 0; }