编程题:企业管理(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]); } } }