去年蓝桥杯填空第一题做了20分钟(蒟蒻的无能)
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
const int N = 110;
int a[N];
int day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
for(int i = 0;i < 100; i ++) cin >> a[i];
unordered_map<int,int>mp;
int cnt = 0;
for(int i = 0; i < 100; i ++)
{
if(a[i] == 2)
{
for(int j = i + 1; j < 100; j ++)
{
if(a[j] == 0)
{
for(int k = j + 1; k < 100; k ++)
{
if(a[k] == 2)
{
for(int l = k + 1; l < 100; l ++)
{
if(a[l] == 3)
{
for(int _1 = l + 1; _1 < 100; _1 ++)
{
if(a[_1] >= 0 && a[_1] < 2)
{
for(int _2 = _1 + 1; _2 < 100; _2 ++)
{
int mon = a[_1] * 10 + a[_2];
//cout << mon << endl;
if(mon > 0 && mon <= 12)
{
for(int _3 = _2 + 1; _3 < 100; _3 ++)
{
for(int _4 = _3 + 1; _4 < 100; _4 ++)
{
int x = a[_4] + a[_3] * 10;
int num = 2023 * 10000 + mon * 100 + x;
if(x > 0 && x <= 31 && !mp[num] && day[mon] >= x)
{
mp[num] ++;
cnt ++;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
//for(auto t : mp) cout << t.first << endl;
cout << cnt << endl;
return 0;
}