2019 NPSC 國中組 初賽 比賽題解

2019 NPSC 國中組 初賽 比賽題解

題解:

pA:

題意:
找出3個大小為n(n<=100000)的陣列裡的最小值

解法:
合併,排序,輸出
小心溢位

code:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long n,arr[500001];
  4. int main(){
  5.     cin>>n;
  6.     for(int i=0;i<3*n;i++)
  7.     {
  8.         cin>>arr[i];
  9.     }
  10.     sort(arr,arr+3*n);
  11.     long long sum=0;
  12.     for(int i=0;i<n;i++) sum+=arr[i];
  13.     cout<<sum<<'\n';
  14. }

pB:

題意:
輸入為0~2之間的整數
若輸入0,輸出1
若輸入1,輸出2
若輸入2,輸出0

解法:
照著打

code:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     int n;
  6.     cin>>n;
  7.     if(n==0)cout<<1<<'\n';
  8.     if(n==1)cout<<2<<'\n';
  9.     if(n==2)cout<<0<<'\n';
  10. }

pC:

題意:
請配合外星人的時間計數系統輸出過了多少時間

解法:
照著打就行了,沒有很難的測資

code:
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5.     int n,m,k,n1,m1,k1,t;
  6.     char c1,c2;
  7.     cin>>n>>m>>k;
  8.     cin>>t;
  9.     int a1,a2,a3;
  10.     for(int i=0;i<t;i++)
  11.     {
  12.         cin>>n1>>c1>>m1>>c2>>k1;
  13.         cin>>a1>>a2>>a3;
  14.         k1+=a3;
  15.         if(k1>=k)
  16.         {
  17.             m1+=k1/k;
  18.             k1%=k;
  19.         }
  20.         m1+=a2;
  21.         if(m1>=m)
  22.         {
  23.             n1+=m1/m;
  24.             m1%=m;
  25.         }
  26.         n1+=a1;
  27.         if(n1>=n) n1%=n;
  28.         cout<<n1<<":"<<m1<<":"<<k1<<'\n';
  29.     }
  30. }

pD:

題意:待補
解法:待補

pE:

題意:
蝸牛爬井問題

解法:
模擬
並加入n=0的特判

code:
  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int x,y,z,t;
  5. int r=0,day=0;
  6. cin>>x>>y>>z;
  7. if(x==0){
  8. cout<<0<<'\n';
  9. return 0;
  10. }
  11. if(y-z>0||y>=x){
  12. while(++day){
  13. r+=y;
  14. if(r>=x)break;
  15. r-=z;
  16. }
  17. cout<<day<<'\n';
  18. }
  19. else cout<<"-1"<<'\n';
  20. }

pF:

題意:待補
解法:待補

希望有人能提供pD和pF

Comments

Popular Posts