[关闭]
@baobaobear 2020-02-18T14:03:29.000000Z 字数 5642 阅读 218

练习赛 2

practise


A 194115062039

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a[4],flag=0,max=0;
  5. for(int i=0;i<4;i++)
  6. {
  7. scanf("%d",&a[i]);
  8. if(max<a[i])max=a[i];
  9. }
  10. for(int i=0;i<4;i++)
  11. {
  12. if(max!=a[i])
  13. {
  14. if(flag==0)printf("%d",max-a[i]);
  15. else printf(" %d",max-a[i]);
  16. flag=1;
  17. }
  18. }
  19. printf("\n");
  20. }

B 194115062039

  1. #include<stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5. int q,k[100],p,temp;
  6. long long a,ans;
  7. scanf("%d",&q);
  8. while(q--)
  9. {
  10. scanf("%lld",&a);
  11. p=0;ans=0;temp=-1;
  12. for(int i=0;i<100;i++)k[i]=0;
  13. while(a)
  14. {
  15. k[p]=a%3;
  16. a/=3;
  17. p++;
  18. }
  19. for(int i=0;i<p;i++)
  20. {
  21. if(k[i]>=2)
  22. {
  23. temp=i;
  24. k[i]=0;
  25. k[i+1]++;
  26. if(i+1>=p)p++;
  27. }
  28. }
  29. if(temp!=-1)for(int i=0;i<temp;i++)k[i]=0;
  30. long long jishu=1;
  31. for(int i=0;i<=p;i++)
  32. {
  33. ans+=k[i]*jishu;
  34. jishu*=3;
  35. }
  36. printf("%lld\n",ans);
  37. }
  38. }

C 194115062039

  1. #include<stdio.h>
  2. #include<string.h>
  3. char ch[205][11],str[11];
  4. int s[205];
  5. int main()
  6. {
  7. int a,b,k=0;
  8. scanf("%d",&a);
  9. getchar();
  10. for(int i=0;i<a;i++)
  11. {
  12. scanf("%s",str);
  13. int flag=0;
  14. for(int j=0;j<k;j++)
  15. {
  16. if(strcmp(ch[j],str)==0)
  17. {
  18. flag=1;
  19. s[j]++;
  20. break;
  21. }
  22. }
  23. if(flag==0)
  24. {
  25. strcpy(ch[k],str);
  26. s[k]++;
  27. k++;
  28. }
  29. }
  30. scanf("%d",&b);
  31. getchar();
  32. for(int i=0;i<b;i++)
  33. {
  34. scanf("%s",str);
  35. int flag=0;
  36. for(int j=0;j<k;j++)
  37. {
  38. if(strcmp(ch[j],str)==0)
  39. {
  40. flag=1;
  41. s[j]--;
  42. break;
  43. }
  44. }
  45. if(flag==0)
  46. {
  47. strcpy(ch[k],str);
  48. s[k]--;
  49. k++;
  50. }
  51. }
  52. int max=0;
  53. for(int i=0;i<k;i++)if(s[i]>max)max=s[i];
  54. printf("%d\n",max);
  55. }

D Kevin7Zz

  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. #define mod 1000000007
  4. typedef unsigned long long ull;
  5. const int INF=0x3f3f3f3f;
  6. const int N=2e5+5;
  7. using namespace std;
  8. int a[N]={0};
  9. int t,m;
  10. int n,flag;
  11. int main(){
  12. cin>>t;
  13. while(t--){
  14. cin>>n;
  15. flag=0;
  16. for(int i=2;i*i<=n;i++){
  17. if(n%i==0){
  18. for(int j=i+1;j*j<=(n/i);j++){
  19. if((n/i)%j==0){
  20. if((n/i)/j!=j){
  21. flag=1;
  22. cout<<"YES"<<endl;
  23. printf("%d %d %d\n",i,j,(n/i)/j);
  24. break;
  25. }
  26. }
  27. }
  28. }
  29. if(flag) break;
  30. }
  31. if(!flag) cout<<"NO"<<endl;
  32. }
  33. return 0;
  34. }

E Kevin7Zz

  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. #define mod 1000000007
  4. typedef unsigned long long ull;
  5. const int INF=0x3f3f3f3f;
  6. const int N=2e5+5;
  7. using namespace std;
  8. int a[N]={0};
  9. int t,m,s=0,dis[105]={0};
  10. int n,flag,vis[105]={0};
  11. int main(){
  12. cin>>t;
  13. for(int i=0;i<t;i++){
  14. cin>>a[i];
  15. if(vis[a[i]]==0){
  16. dis[s]=a[i];
  17. s++;
  18. }
  19. vis[a[i]]++;
  20. }
  21. sort(dis,dis+s);
  22. if(s==1) cout<<"0"<<endl;
  23. else if(s==2){
  24. if((dis[1]-dis[0])%2==0) cout<<(dis[1]-dis[0])/2<<endl;
  25. else cout<<(dis[1]-dis[0])<<endl;
  26. }else if(s>3) cout<<"-1"<<endl;
  27. else{
  28. int b=dis[2]-dis[1],c=dis[1]-dis[0];
  29. if(b==c) cout<<b<<endl;
  30. else cout<<"-1"<<endl;
  31. }
  32. return 0;
  33. }

F 194115062039

  1. #include<stdio.h>
  2. int ans[1005][1005];
  3. int main()
  4. {
  5. int n,a[1005],sum[1005],b,k;
  6. scanf("%d",&n);
  7. for(int i=0;i<1005;i++)sum[i]=0;
  8. for(int i=0;i<n*n;i++)
  9. {
  10. scanf("%d",&b);
  11. int flag=0;
  12. for(int j=0;j<k;j++)
  13. {
  14. if(b==a[j]&&sum[j]<4)
  15. {
  16. sum[j]++;
  17. flag=1;
  18. break;
  19. }
  20. }
  21. if(flag==0)
  22. {
  23. a[k]=b;
  24. sum[k]=1;
  25. k++;
  26. }
  27. }
  28. if(n%2==0)
  29. {
  30. for(int i=0;i<k;i++)
  31. {
  32. if(sum[i]!=4)
  33. {
  34. printf("NO\n");
  35. return 0;
  36. }
  37. }
  38. printf("YES\n");
  39. int s=0;
  40. for(int i=0;i<n/2;i++)
  41. {
  42. for(int j=0;j<n/2;j++)
  43. {
  44. ans[i][j]=a[s];
  45. ans[i][n-1-j]=a[s];
  46. ans[n-1-i][j]=a[s];
  47. ans[n-1-i][n-1-j]=a[s];
  48. s++;
  49. }
  50. }
  51. for(int i=0;i<n;i++)
  52. {
  53. for(int j=0;j<n;j++)
  54. {
  55. if(j==n-1)printf("%d\n",ans[i][j]);
  56. else printf("%d ",ans[i][j]);
  57. }
  58. }
  59. }
  60. else
  61. {
  62. int s=0;
  63. for(int i=0;i<n/2;i++)
  64. {
  65. for(int j=0;j<n/2;j++)
  66. {
  67. while(sum[s]!=4)
  68. {
  69. s++;
  70. if(s>=k)
  71. {
  72. printf("NO\n");
  73. return 0;
  74. }
  75. }
  76. ans[i][j]=a[s];
  77. ans[i][n-1-j]=a[s];
  78. ans[n-1-i][j]=a[s];
  79. ans[n-1-i][n-1-j]=a[s];
  80. sum[s]=0;
  81. }
  82. }
  83. s=0;
  84. for(int i=0;i<n/2;i++)
  85. {
  86. while(sum[s]<2)
  87. {
  88. s++;
  89. if(s>=k)
  90. {
  91. printf("NO\n");
  92. return 0;
  93. }
  94. }
  95. ans[n/2][i]=a[s];
  96. ans[n/2][n-1-i]=a[s];
  97. sum[s]-=2;
  98. }
  99. s=0;
  100. for(int i=0;i<n/2;i++)
  101. {
  102. while(sum[s]<2)
  103. {
  104. s++;
  105. if(s>=k)
  106. {
  107. printf("NO\n");
  108. return 0;
  109. }
  110. }
  111. ans[i][n/2]=a[s];
  112. ans[n-1-i][n/2]=a[s];
  113. sum[s]-=2;
  114. }
  115. for(int i=0;i<k;i++)if(sum[i])ans[n/2][n/2]=a[i];
  116. printf("YES\n");
  117. for(int i=0;i<n;i++)
  118. {
  119. for(int j=0;j<n;j++)
  120. {
  121. if(j==n-1)printf("%d\n",ans[i][j]);
  122. else printf("%d ",ans[i][j]);
  123. }
  124. }
  125. }
  126. }

G 194115062039

  1. #include<stdio.h>
  2. struct node
  3. {
  4. int x1;
  5. int y1;
  6. int x2;
  7. int y2;
  8. }w,b1,b2;
  9. int main()
  10. {
  11. scanf("%d%d%d%d",&w.x1,&w.y1,&w.x2,&w.y2);
  12. scanf("%d%d%d%d",&b1.x1,&b1.y1,&b1.x2,&b1.y2);
  13. scanf("%d%d%d%d",&b2.x1,&b2.y1,&b2.x2,&b2.y2);
  14. if((b2.x1<=w.x1&&b2.x2>=w.x2&&b2.y1<=w.y1&&b2.y2>=w.y2)||(b1.x1<=w.x1&&b1.x2>=w.x2 &&b1.y1<=w.y1&&b1.y2>=w.y2)||(b2.x1<=w.x1&&b2.x2>=w.x2&&b1.x1<=w.x1&&b1.x2>=w.x2&&b1.y1<=w.y1&&b2.y2>=w.y2&&b1.y2>=b2.y1)||(b2.x1<=w.x1&&b2.x2>=w.x2&&b1.x1<=w.x1&&b1.x2>=w.x2&&b2.y1<=w.y1&&b1.y2>=w.y2&&b2.y2>=b1.y1)||(b2.y1<=w.y1&&b2.y2>=w.y2&&b1.y1<=w.y1&&b1.y2>=w.y2&&b1.x1<=w.x1&&b2.x2>=w.x2&&b1.x2>=b2.x1)||(b2.y1<=w.y1&&b2.y2>=w.y2&&b1.y1<=w.y1&&b1.y2>=w.y2&&b2.x1<=w.x1&&b1.x2>=w.x2&&b2.x2>=b1.x1))
  15. printf("NO\n");
  16. else printf("YES\n");
  17. }

H 184215092010

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<algorithm>
  4. #include<iostream>
  5. #include<stack>
  6. #define ll long long
  7. #define N 200000
  8. using namespace std;
  9. int num[N];
  10. int main() {
  11. int n, ans = 0;
  12. cin >> n;
  13. int flag = 0;
  14. for (int i = 1; i <= n; i++)
  15. {
  16. cin >> num[i];
  17. }
  18. sort(num + 1, num + 1 + n);
  19. for (int i = 1; i <= n; i++)
  20. {
  21. for (int j = -1; j <= 1; j++)
  22. {
  23. if (flag < num[i] + j)
  24. {
  25. flag = num[i] + j;
  26. ans++;
  27. break;
  28. }
  29. }
  30. }
  31. printf("%d", ans);
  32. return 0;
  33. }

I 194115062039

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. struct node
  4. {
  5. int l;
  6. int r;
  7. int d;
  8. bool del;
  9. }line[205];
  10. int inc(const void *a, const void *b)
  11. {
  12. struct node m = *(struct node *)a;
  13. struct node n = *(struct node *)b;
  14. if(m.r!=n.r) return m.r - n.r;
  15. }
  16. int main()
  17. {
  18. int n,k,sum[205],ans=0,p[205];
  19. scanf("%d%d",&n,&k);
  20. for(int i=0;i<205;i++)sum[i]=0;
  21. for(int i=0;i<n;i++)
  22. {
  23. scanf("%d%d",&line[i].l,&line[i].r);
  24. line[i].d=i+1;
  25. line[i].del=false;
  26. for(int j=line[i].l;j<=line[i].r;j++)sum[j]++;
  27. }
  28. qsort(line,n,sizeof(struct node),inc);
  29. for(int i=0;i<205;i++)
  30. {
  31. int c=n-1;
  32. while(sum[i]>k)
  33. {
  34. while(line[c].l>i||line[c].del==true)c--;
  35. line[c].del=true;
  36. for(int j=line[c].l;j<=line[c].r;j++)sum[j]--;
  37. p[ans]=line[c].d;
  38. ans++;
  39. }
  40. }
  41. printf("%d\n",ans);
  42. if(ans>=1)
  43. {
  44. for(int i=0;i<ans-1;i++)printf("%d ",p[i]);
  45. printf("%d\n",p[ans-1]);
  46. }
  47. }

J 194115062039

  1. #include<iostream>
  2. #include<queue>
  3. using namespace std;
  4. long long a[100005];
  5. int main()
  6. {
  7. long long n,m,k,price,sum=0;
  8. priority_queue<long long>que;
  9. scanf("%lld%lld",&n,&m);
  10. for(int i=0;i<n;i++)scanf("%lld",&a[i]);
  11. for(int i=0;i<n;i++)que.push(a[i]);
  12. while(m>0)
  13. {
  14. price=que.top();
  15. price/=2;
  16. m--;
  17. que.pop();
  18. que.push(price);
  19. }
  20. while(!que.empty())
  21. {
  22. sum+=que.top();
  23. que.pop();
  24. }
  25. printf("%lld\n",sum);
  26. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注