choi@startlink.io
https://www.acmicpc.net/problem/10986
• N 	
   	
  A1,	
  A2,	
  …,	
  AN	
  
• 	
   	
   	
   	
  M 	
   	
   	
   	
   	
  
• ,	
  Ai	
  +	
  …	
  +	
  Aj 	
  M 	
   	
   	
  (i,	
  j) 	
   	
  
• 1	
  ≤	
  N	
  ≤	
  106	
  
• 2	
  ≤	
  M	
  ≤	
  103	
  
• 0	
  ≤	
  Ai	
  ≤	
  109
https://www.acmicpc.net/problem/10986
• 	
   	
   	
  N^2 	
  
• O(N^2)	
  =	
  (10^6)^2	
  =	
  10^12	
  	
  
• 10^12	
  ≥	
  1 	
  
• !
	
  
https://www.acmicpc.net/problem/10986
• Si	
  =	
  A1	
  +	
  …	
  +	
  Ai	
   	
   	
  
• Ai +	
  …	
  +	
  Aj =	
  Sj – Si-­‐1
• (Ai +	
  …	
  +	
  Aj)	
  %	
  M	
  =	
  (Sj – Si-­‐1)	
  %	
  M
• (Ai +	
  …	
  +	
  Aj)	
  %	
  M	
  ==	
  0 	
   	
   	
   	
   	
  
• (Sj – Si-­‐1)	
  %	
  M ==	
  0	
   	
   	
  
• 	
   	
  0 	
   	
  
• Sj	
  %	
  M	
  ==	
  Si-­‐1	
  %	
  M	
   	
   	
   	
  
https://www.acmicpc.net/problem/10986
• 	
   	
  
• Sj %	
  M	
  ==	
  Si-­‐1 %	
  M
• 	
   	
  (i,	
  j)	
   	
   	
   	
   	
   .	
  
• cntk 	
  Si	
  %	
  M	
  ==	
  k	
   	
  i 	
   	
   	
  
• 0	
  ≤	
  k	
  <	
  M 	
  k 	
   	
  	
  
• cntk	
  *	
  (cntk	
  -­‐	
  1)	
  /	
  2	
   	
   	
   	
   .	
  
https://www.acmicpc.net/problem/10986
• https://gist.github.com/Baekjoon/6d45e5ef5d7eed6039b5	
  
	
  

Baekjoon Online Judge 10986번 풀이