第二次比赛部分题解

发布时间 2023-07-22 23:36:50作者: ouhq
  • P7060 [NWRRC2014] Alarm Clock

  

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    int arr[10]={6,2,5,5,4,5,6,3,7,6};
    bool check= false;
    //对于时间ab:cd
    for(int a=0;a<=2;a++){  //a最多可以到2(因为最大为23小时)
        for(int b=0;b<10;b++){ //b0到9都有可能(10:00到19:00)
            for(int c=0;c<=5;c++){//分钟最多到59,所以c位最大位5
                for(int d=0;d<10;d++){//最后一位0-9都有可能
                    if(arr[a]+arr[b]+arr[c]+arr[d]==n){  //遍历所有,第一个满足的输出
                        cout<<a<<b<<":"<<c<<d;
                        check= true; //如果输出了答案,那么就不输出impossible
                        break;  //只能跳出当前循环,因此需要多个break
                    }
                }
                if(check) break;
            }
            if(check)break;
        }
        if(check) break;
    }
    if(!check) cout<<"Impossible";  //如果没有符合条件的,那么输出impossible
    return 0;
}
  • 2