编程题:企业管理(Web)
题目描述:
企业管理是一个难题,特别是对于上下班打卡系统来说。小A所在的公司的打卡器坏了,所以打卡机只记录了今天一般连续的时间内所有的打卡记录。小A是企业的老板,他从来都是第一个上班,最晚下班的人。今天他恰好忘记了自己的号码。现在, 小A只有一张按时间顺序但记录不全的上下班记录表。他希望使用这一张表,看出自己的工号是几号。请你帮助小A计算自己的工号,如果有多组解,从小到大按顺序输出。
请注意,公司管理规定上班下班必须有打卡记录,但是有可能有部分员工今天请假而没有打卡记录。
输入描述
输入第一行包含两个整数n,m,n是小A所在公司的人数,m是今天打卡机记录,接下来m行,每行两个整数a;b;a为1表示这一次打卡操作人上班打卡,b为0代表下班打卡。
import java.util.ArrayList;
import java.util.Scanner;
public class test1 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();//总人数
int m=sc.nextInt();//记录数
int[][] arr=new int[m][2];
ArrayList<Integer> b=new ArrayList<Integer>();
for(int i=0;i<m;i++){
for(int j=0;j<2;j++){
arr[i][j]=sc.nextInt();
}
}
int x=0;
int y=0;
Integer[] arr1=new Integer[m];
if(m<2*n){
for(int a=1;a<=n;a++){
b.add(a);
}
System.out.println(b);
for(int i=0;i<m;i++){
if(arr[i][1]==0){
x++;
}
else{
y++;
}
arr1[i]=arr[i][0];
}
if(x!=y){
if(x<y){
for(int i=0;i<m;i++) {
if (!b.contains(arr1[i])) {
System.out.println(arr1[i]);
}
}
}else{
System.out.println(arr1[m-1]);
for(int i=0;i<m;i++) {
if (!b.contains(arr1[i])) {
System.out.println(arr1[i]);
}
}
}
}else{
System.out.println(11);
for(int i=0;i<m;i++) {
if (b.contains(arr1[i])) {
b.remove(arr1[i]);
}
}
System.out.println(b);
}
}else{
System.out.println(arr[0][0]);
}
}
}

查看5道真题和解析
