[JAVA]SWEA 7510-上院の連続
prefix sumを計算することによって連続和を構築した.適切に中断しないとタイムアウトが発生します.
import java.util.*;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
StringBuffer sb = new StringBuffer();
for (int tc = 1; tc <= T; tc++) {
sb.append("#").append(tc).append(" ");
int N = sc.nextInt();
long count = 0;
long sum[] = new long[N + 1];
for (int i = 1; i <= N; i++) {
sum[i] = sum[i - 1] + i;
}
for (int i = 1; i <= N; i++) {
if (sum[i] == N)
count++;
if(sum[i] < N)
continue;
for (int j = i - 1; j >= 1; j--) {
if(sum[i] - sum[j] > N)
break;
if (sum[i] - sum[j] == N)
count++;
}
}
sb.append(count).append("\n");
}
System.out.println(sb);
}
}
Reference
この問題について([JAVA]SWEA 7510-上院の連続), 我々は、より多くの情報をここで見つけました https://velog.io/@gkdud583/JAVA-SWEA-7510-상원이의-연속-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol