AC代码(把分钟和小时的笔画列出来暴力就可以了)
Select Code
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <cmath>
//#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
using namespace std;
int main()
{
freopen("alarm.in", "r", stdin);
freopen("alarm.out", "w", stdout);
int a[10] = {6,2,5,5,4,5,6,3,7,6}, b[30], c[65], n, i, j;
scanf("%d",&n);
for(i = 0;i<=24;i++)
{
if(i<10)
{
b[i] = a[0]+a[i];
}
else
b[i] = a[i/10]+a[i%10];
}
for(i = 0;i<=59;i++)
{
if(i<10)
{
c[i] = a[0]+a[i];
}
else
c[i] = a[i/10]+a[i%10];
}
int f = 0;
for(i = 0;i<=24;i++)
{
for(j = 0;j<=59;j++)
{
if((b[i]+c[j])==n)
{
printf("%.2d:%.2d\n", i, j);
f = 1;
break;
}
}
if(f==1)
break;
}
if(f==0)
printf("Impossible\n");
return 0;
}