import java.util.ArrayList; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner s = new Scanner(System.in); while(s.hasNext()){ String[] ss = s.nextLine().split("\\s+"); int n = Integer.parseInt(ss[0]);//n条 int m = Integer.parseInt(ss[1]); //间隔 int c = Integer.parseInt(ss[2]);//颜色数量 ArrayList<ArrayList<Integer>> list = new ArrayList<>(); for(int i =0; i <n; i++){ String[] str = s.nextLine().split("\\s+"); ArrayList<Integer> arr = new ArrayList<>(); for(int j= 0; j<str.length; j++){ arr.add(Integer.parseInt(str[j])); } int zhonglei = arr.remove(0); if(zhonglei == 0) arr.add(-1); list.add(arr); } ArrayList<ArrayList<Integer>> list1 = new ArrayList<>(); for(int i=1; i<=c; i++){ ArrayList<Integer> arr = new ArrayList<>(); for(int j=0; j<list.size(); j++){ if(list.get(j).contains(i)){ arr.add(j+1); // 存储相同颜色所在的串序号 } } list1.add(arr); } int countColor=0; for(int i=0; i<list1.size();i++){ // 每个组进行判断 if(list1.get(i).size()==1){ //相同颜色组只有一个元素跳过 continue; } // size>=2 判断最后一个和第一个相差多远 if(list1.get(i).get(0)+list1.get(i).size()-list1.get(i).get(list1.get(i).size()-1)-1<m){ countColor++; continue; } //判断相邻的相差多远 for(int j=0; j<list1.get(i).size()-1;j++){ if(list1.get(i).get(j+1)-list1.get(i).get(j)<m){ countColor++; break; } } } System.out.println(countColor); } } }
点赞 评论

相关推荐

黑皮白袜臭脚体育生:简历条例统一按使用了什么技术实现了什么功能解决了问题或提升了什么性能指标来写会好些,如使用布隆过滤器实现了判断短链接是否存在,大大提升了查询速度
点赞 评论 收藏
分享
牛客网
牛客企业服务