4.1w+
社区成员
第 1 题:特殊日期
#include <iostream>
using namespace std;
bool check(int y, int m, int d) {
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
if (m == 2 && d >= 1 && d <= 29) return true;
}
else {
if (m == 2 && d >= 1 && d <= 28) return true;
}
if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d >= 1 && d <= 31) return true;
if ((m == 4 || m == 6 || m == 9 || m == 11) && d >= 1 && d <= 30) return true;
return false;
}
int main()
{
int sum = 0;
for (int y = 1900; y <= 9999; y++) {
for (int m = 1; m <= 12; m++) {
for (int d = 1; d <= 31; d++) {
if (check(y, m, d)) {
int t, x = 0;
t = y;
while (t) {
x += t % 10;
t /= 10;
}
t = m;
while (t) {
x -= t % 10;
t /= 10;
}
t = d;
while (t) {
x -= t % 10;
t /= 10;
}
if (x == 0) sum++;
}
}
}
}
cout << sum;
return 0;
}
第 2 题:重合次数
#include <iostream>
using namespace std;
int sum;
void init(){
for(int h=6;h<=14;h++){
for(int m=0;m<=59;m++){
for(int s=0;s<=59;s++){
if(h==14&&m==36&&s==20) return;
if(((h==6&&m>=13&&s>=22)||(h>=7))&&m==s) sum++;
}
}
}
}
int main()
{
init();
cout<<sum;
return 0;
}
第 3 题:左移右移
#include <bits/stdc++.h>
using namespace std;
const int nmax=2*1e5+5;
int n,m;
struct snum
{
int num,val;
}nums[nmax];
bool cmp(snum &sn1,snum &sn2){
return sn1.val<sn2.val;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) {
nums[i].num=i;
nums[i].val=i;
}
for(int i=n+1;i<=n+1+m;i++){
char c;
int x;
cin>>c>>x;
if(c=='L'){
nums[x].val=-i;
}else if(c=='R'){
nums[x].val=i;
}
}
sort(nums+1,nums+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<nums[i].num<<" ";
}
return 0;
}