Submission #2182979
Source Code Expand
import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int N = scan.nextInt(); long[] a = new long[N]; long[] b = new long[N]; for(int i=0;i<N;++i)a[i] =scan.nextLong(); for(int i=0;i<N;++i)b[i] =scan.nextLong(); Map<Long,Integer> countmap = new HashMap<>(); long x = 0; for(int i=0;i<N;++i)x^=a[i]; countmap.put(x,1); for(int i=0;i<N;++i){ if(!countmap.containsKey(a[i]))countmap.put(a[i],0); countmap.put(a[i], countmap.get(a[i])+1); } for(int i=0;i<N;++i){ if(!countmap.containsKey(b[i]) || countmap.get(b[i])==0){ System.out.println(-1); return; } countmap.put(b[i], countmap.get(b[i])-1); } Map<Long, Deque<Integer>> bNumToIndex = new HashMap<>(); for(int i=0;i<N;++i){ if(!bNumToIndex.containsKey(b[i]))bNumToIndex.put(b[i],new ArrayDeque<>()); bNumToIndex.get(b[i]).add(i); } int ans =0; boolean used[] = new boolean[N]; int index=0; while(true){ int nextIndex=-1; if(bNumToIndex.containsKey(x)){ nextIndex=bNumToIndex.get(x).poll(); while(used[nextIndex] && !bNumToIndex.get(x).isEmpty()){ nextIndex = bNumToIndex.get(x).poll(); } if(bNumToIndex.get(x).isEmpty())bNumToIndex.remove(x); if(used[nextIndex])nextIndex=-1; } if(nextIndex<0){ while(index<N &&(used[index] || a[index]==b[index]))++index; if(index>=N)break; nextIndex=index; ++ans; } used[nextIndex]=true; if(x!=a[nextIndex]){ ++ans; x=a[nextIndex]; }; } System.out.println(ans); } }
Submission Info
Submission Time | |
---|---|
Task | D - XOR Replace |
User | inmir |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2258 Byte |
Status | CE |
Compile Error
./Main.cpp:1:1: error: ‘import’ does not name a type import java.util.ArrayDeque; ^ ./Main.cpp:2:1: error: ‘import’ does not name a type import java.util.ArrayList; ^ ./Main.cpp:3:1: error: ‘import’ does not name a type import java.util.Deque; ^ ./Main.cpp:4:1: error: ‘import’ does not name a type import java.util.HashMap; ^ ./Main.cpp:5:1: error: ‘import’ does not name a type import java.util.List; ^ ./Main.cpp:6:1: error: ‘import’ does not name a type import java.util.Map; ^ ./Main.cpp:7:1: error: ‘import’ does not name a type import java.util.Scanner; ^ ./Main.cpp:8:1: error: ‘import’ does not name a type import java.util.Set; ^ ./Main.cpp:11:12: error: expected ‘:’ before ‘static’ public static void main(String[] args){ ^ ./Main.cpp:11:29: error: ‘String’ has not been declared public static void main(String[] args){ ^ ./Main.cpp:11:38: error: expected ‘,’ or ‘...’ before ‘args’ public static void main(String[] args){ ...