A - Buggy Sorting
举一个反例,让这个排序不能正常进行(好像基本上都不行)
loop integer variable i from 1 to n - 1
loop integer variable j from i to n - 1
if (aj > aj + 1), then swap the values of elements aj and aj + 1
#include<cmath> #include<cstdio> #include<algorithm> #include<string> #include<vector> #include<iomanip> #include<iostream> using namespace std; typedef long long ll; int main(){ int a[50]; int i,j,temp,n; cin>>n; if(n<=2){//n<=2,都能正常排序 cout<<"-1"<<endl; } else { for(i=n; i>0; i--) { cout<<i<<" "; } cout<<endl; } return 0; }
B - Increase and Decrease
能被n整除,就能得到n个相等的数,不能整除,最终可以得到n-1个相等的数
#include<cmath> #include<cstdio> #include<algorithm> #include<string> #include<vector> #include<iomanip> #include<iostream> using namespace std; typedef long long ll; int main(){ int a,n,sum=0,i; cin>>n; for(i=0;i<n;i++){ cin>>a; sum+=a; } if(sum%n==0){ cout<<n<<endl; }else{ cout<<n-1<<endl; } return 0; }
先把每个小孩想要的那一瓣橘子给他,剩下的均分
#include<cmath> #include<cstdio> #include<algorithm> #include<string> #include<vector> #include<iomanip> #include<iostream> using namespace std; typedef long long ll; int main(){ int n,m,i,j,k,a[910]={0},b[30]; cin>>n>>m; for(i=0;i<m;i++){ cin>>b[i]; a[b[i]]=1;//标记这瓣橘子有人想要了 } k=1; for(i=0;i<m;i++){ cout<<b[i]<<" ";//先把他想要的给他 for(j=0;j<n-1;j++){ if(a[k]!=1){ cout<<k<<" "; }else{ j--; } k++; } cout<<endl; } return 0; }