#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
bool is_allwork(vector<string> s) {
int count_absent = 0;//缺勤次数
int continue_late = 0;//连续迟到或早退次数
for (int i = 0; i < s.size(); i++) {
if (s[i] == "late"||s[i] == "leaveearly") {
continue_late++;
}
else if (s[i] == "absent"){
count_absent++;
continue_late = 0;
}
else{//正常
continue_late = 0;
}
if(count_absent>1){//缺勤次数大于1
return false;
}
if(continue_late>1){//连续早退或迟到
return false;
}
if(i>=6){
int count_bad = 0;
for(int j = 0;j<7;j++){//判断7天内是否超过三次
if(s[j]=="late"||s[j]=="leaveearly"||s[j]=="absent"){
count_bad++;
}
if(count_bad>3){
return false;
}
}
}
}
return true;
}
int main() {
int n;
cin >> n;
cin.ignore();
for (int i = 0; i < n; i++) {
string s;
getline(cin, s);
istringstream iss(s);
string temp;
vector<string> work;
while (iss >> temp) {
work.push_back(temp);
}
if(is_allwork(work)){
cout << "true" << " ";
}
else{
cout << "false" << " ";
}
}
}
考勤信息(C++)
最新推荐文章于 2024-10-06 17:30:15 发布