简单模拟
AC代码:
#include <stdio.h>
#include <vector>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
int a[15];
bool IG(int i){
if(i == 1 || i == 3 || i == 5 || i ==7) return true;
if(i == 8 || i == 10 || i == 12) return true;
return false;
}
int main(){
int d,m;
cin >> d >> m;
for(int i=1; i<=12; i++){
if(IG(i)) a[i] += 31;
else if(i == 2) a[i] += 28;
else a[i] += 30;
a[i] += a[i-1];
}
if(m > 12 || m < 1) {cout << "Impossible" << endl; return 0;}
if(d < 1 || d > a[m] - a[m-1]) {cout << "Impossible" << endl; return 0;}
int key = (a[m-1] + d) % 7;
if(!key) cout << "7" << endl;
else cout << key << endl;
//system("pause");
return 0;
}