Skip to content

Instantly share code, notes, and snippets.

@kunst1080
Created January 8, 2015 13:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kunst1080/1d1abe67291d7b34b194 to your computer and use it in GitHub Desktop.
Save kunst1080/1d1abe67291d7b34b194 to your computer and use it in GitHub Desktop.
Answers for POH4 (パイザオンラインハッカソン4・Lite エン恋 POH4Lite : https://paiza.jp/poh/enkoi)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char buf[15], *token1;
int i, count, n, sum;
sum = 0;
fgets(buf, sizeof(buf), stdin);
count = atoi(buf);
for (i=0; i<count; i++) {
fgets(buf, sizeof(buf), stdin);
token1 = strtok(buf, " ");
n = atoi(token1);
sum = sum + n;
}
printf("%d\n", sum);
return 0;
}
IDENTIFICATION DIVISION.
PROGRAM-ID. answer-1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 INPUT-AREA.
03 INPUT-REC PIC X(15).
03 INPUT-01 PIC 9(9).
01 OUTPUT-AREA.
03 OUTPUT-REC PIC Z(8)9.
03 OUT-LEN PIC 9(9) VALUE 9.
03 OUT-START PIC 9(9).
03 OUT-END PIC 9(9).
01 WORK-AREA.
03 WK-COUNT PIC 9(9).
03 WK-SUM PIC 9(9).
*>
PROCEDURE DIVISION.
MAIN-RTN.
PERFORM READ-RTN.
MOVE INPUT-01 TO WK-COUNT.
PERFORM WK-COUNT TIMES
PERFORM READ-RTN
COMPUTE WK-SUM = WK-SUM + INPUT-01
END-PERFORM.
MOVE WK-SUM TO OUTPUT-REC.
PERFORM OUTPUT-RTN.
EXIT PROGRAM.
STOP RUN.
*>
READ-RTN SECTION.
ACCEPT INPUT-REC.
UNSTRING INPUT-REC DELIMITED BY " " INTO INPUT-01.
EXIT.
*>
OUTPUT-RTN SECTION.
INSPECT OUTPUT-REC TALLYING OUT-START FOR ALL " ".
COMPUTE OUT-END = OUT-LEN - OUT-START.
COMPUTE OUT-START = OUT-START + 1.
DISPLAY OUTPUT-REC(OUT-START:OUT-END).
EXIT.
using System;
using System.Diagnostics;
public class Hello{
public static void Main(){
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "awk";
psi.Arguments = "'NR>1{sum = sum + $0}END{print sum}'";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
Process p = Process.Start(psi);
String outputString = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.Write(outputString);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
long sum = 0;
for (int i=0; i<count; i++) {
int n = sc.nextInt();
sum = sum + n;
}
System.out.println(sum);
}
}
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
var lines = chunk.toString().split('\n');
var count = lines[0];
var sum = 0;
for(var i=1; i<=count; i++) {
var line = lines[i].split(" ");
sum = sum + parseInt(line[0]);
}
console.log(sum);
});
count = int(raw_input())
sum = 0
for i in xrange(count):
n = int(raw_input())
sum = sum + n
print sum
#!/usr/bin/env ruby
count = gets.to_i
sum = 0
count.times{
sum = sum + gets.to_i
}
print sum, "\n"
object Main extends App {
val sc = new java.util.Scanner(System.in)
val count = sc.nextInt
var sum = 0
for (i <- 1 to count) {
val n = sc.nextInt
sum = sum + n
}
println(sum)
}
awk 'NR>1{sum = sum + $0}END{print sum}'
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char buf[15], *token1, *token2, *token3;
int i, count, sum;
int t, s, p, items;
sum = 0;
fgets(buf, sizeof(buf), stdin);
count = atoi(buf);
for (i=0; i<count; i++) {
fgets(buf, sizeof(buf), stdin);
token1 = strtok(buf, " ");
token2 = strtok(NULL, " ");
token3 = strtok(NULL, " ");
t = atoi(token1);
s = atoi(token2);
p = atoi(token3);
items = t - s;
if (items > 0) {
sum = sum + items * p;
}
}
printf("%d\n", sum);
return 0;
}
IDENTIFICATION DIVISION.
PROGRAM-ID. answer-2.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 INPUT-AREA.
03 INPUT-REC PIC X(15).
03 INPUT-01 PIC 9(9).
03 INPUT-02 PIC 9(9).
03 INPUT-03 PIC 9(9).
01 OUT-AREA.
03 OUTPUT-REC PIC Z(10)9.
03 OUT-LEN PIC 9(9) VALUE 11.
03 OUT-START PIC 9(9).
03 OUT-END PIC 9(9).
01 WORK-AREA.
03 WK-COUNT PIC 9(9).
03 WK-SUM PIC 9(9).
03 WK-ITEMS PIC S9(9).
*>
PROCEDURE DIVISION.
MAIN-RTN.
PERFORM READ-RTN.
MOVE INPUT-01 TO WK-COUNT.
PERFORM WK-COUNT TIMES
PERFORM READ-RTN
COMPUTE WK-ITEMS = INPUT-01 - INPUT-02
IF WK-ITEMS > 0
COMPUTE WK-SUM = WK-SUM + INPUT-03 * WK-ITEMS
END-IF
END-PERFORM.
MOVE WK-SUM TO OUTPUT-REC.
PERFORM OUTPUT-RTN.
EXIT PROGRAM.
STOP RUN.
*>
READ-RTN SECTION.
ACCEPT INPUT-REC.
UNSTRING INPUT-REC DELIMITED BY " " INTO
INPUT-01 INPUT-02 INPUT-03.
EXIT.
*>
OUTPUT-RTN SECTION.
INSPECT OUTPUT-REC TALLYING OUT-START FOR ALL " ".
COMPUTE OUT-END = OUT-LEN - OUT-START.
COMPUTE OUT-START = OUT-START + 1.
DISPLAY OUTPUT-REC(OUT-START:OUT-END).
EXIT.
using System;
using System.Diagnostics;
public class Hello{
public static void Main(){
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "awk";
psi.Arguments = "'NR>1{items=($1 - $2);if(items>0) sum = sum + items * $3}END{print sum}'";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
Process p = Process.Start(psi);
String outputString = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.Write(outputString);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
long sum = 0;
for (int i=0; i<count; i++) {
int t = sc.nextInt();
int s = sc.nextInt();
int p = sc.nextInt();
int items = t -s;
if (items > 0) {
sum = sum + items * p;
}
}
System.out.println(sum);
}
}
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
var lines = chunk.toString().split('\n');
var count = lines[0];
var sum = 0;
for(var i=1; i<=count; i++) {
var line = lines[i].split(" ");
var t = parseInt(line[0]);
var s = parseInt(line[1]);
var p = parseInt(line[2]);
var items = t - s;
if (items >0) {
sum = sum + items * p;
}
}
console.log(sum);
});
count = int(raw_input())
sum = 0
for i in xrange(count):
line = raw_input().split(" ")
t = int(line[0])
s = int(line[1])
p = int(line[2])
items = t - s
if items > 0:
sum = sum + items * p
print sum
#!/usr/bin/env ruby
count = gets.to_i
sum = 0
count.times{
line = gets.chomp.split(" ")
t = line[0].to_i
s = line[1].to_i
p = line[2].to_i
items = t - s
if items > 0
sum = sum + items * p
end
}
print sum, "\n"
object Main extends App {
val sc = new java.util.Scanner(System.in)
val count = sc.nextInt
var sum = 0
for (i <- 1 to count) {
val t = sc.nextInt
val s = sc.nextInt
val p = sc.nextInt
val items = t - s
if (items > 0) sum = sum + items * p
}
println(sum)
}
awk 'NR>1{items=($1 - $2);if(items>0) sum = sum + items * $3}END{print sum}'
awk '
NR==1 {
range = $1
}
NR>1 {
sum = sum + $1 - tmp[NR];
tmp[NR+range]=$1;
if(sum>max) max=sum
}
END {
print max
}'
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char buf[15], *token1, *token2;
int i, range, count;
long max, sum;
int n, tmp[300000];
sum = 0;
max = 0;
fgets(buf, sizeof(buf), stdin);
token1 = strtok(buf, " ");
token2 = strtok(NULL, " ");
range = atoi(token1);
count = atoi(token2);
for (i=0; i<count; i++) {
fgets(buf, sizeof(buf), stdin);
n = atoi(buf);
tmp[i] = n;
sum = sum + n;
if (i>=range) sum = sum - tmp[i-range];
if (sum > max) max = sum;
}
printf("%ld\n", max);
return 0;
}
IDENTIFICATION DIVISION.
PROGRAM-ID. answer-3.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 INPUT-AREA.
03 INPUT-REC PIC X(15).
03 INPUT-01 PIC 9(9).
03 INPUT-02 PIC 9(9).
01 OUT-AREA.
03 OUTPUT-REC PIC Z(12)9.
03 OUT-LEN PIC 9(9) VALUE 13.
03 OUT-START PIC 9(9).
03 OUT-END PIC 9(9).
01 WORK-AREA.
03 WK-III PIC 9(6).
03 WK-JJJ PIC 9(6).
03 WK-COUNT PIC 9(6).
03 WK-SUM PIC 9(10).
03 WK-MAX PIC 9(10).
03 WK-RANGE PIC 9(9).
03 WK-TMP PIC 9(9) OCCURS 300000 TIMES.
*>
PROCEDURE DIVISION.
MAIN-RTN.
PERFORM READ-RTN.
MOVE INPUT-01 TO WK-RANGE.
MOVE INPUT-02 TO WK-COUNT.
PERFORM WK-COUNT TIMES
PERFORM READ-RTN
ADD 1 TO WK-III
MOVE INPUT-01 TO WK-TMP(WK-III)
ADD INPUT-01 TO WK-SUM
IF WK-III > WK-RANGE
COMPUTE WK-JJJ = WK-III - WK-RANGE
COMPUTE WK-SUM = WK-SUM - WK-TMP(WK-JJJ)
END-IF
IF WK-SUM > WK-MAX
MOVE WK-SUM TO WK-MAX
END-IF
END-PERFORM.
MOVE WK-MAX TO OUTPUT-REC.
PERFORM OUTPUT-RTN.
EXIT PROGRAM.
STOP RUN.
*>
READ-RTN SECTION.
ACCEPT INPUT-REC.
UNSTRING INPUT-REC DELIMITED BY " " INTO
INPUT-01 INPUT-02.
EXIT.
*>
OUTPUT-RTN SECTION.
INSPECT OUTPUT-REC TALLYING OUT-START FOR ALL " ".
COMPUTE OUT-END = OUT-LEN - OUT-START.
COMPUTE OUT-START = OUT-START + 1.
DISPLAY OUTPUT-REC(OUT-START:OUT-END).
EXIT.
using System;
using System.Diagnostics;
public class Hello{
public static void Main(){
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "awk";
psi.Arguments = "'NR==1{range=$1}NR>1{sum=sum+$1-tmp[NR];tmp[NR+range]=$1;if(sum>max)max=sum}END{print max}'";
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
Process p = Process.Start(psi);
String outputString = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.Write(outputString);
}
}
import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int range = sc.nextInt();
int count = sc.nextInt();
long sum = 0;
long max = 0;
Map<Integer, Integer> tmp = new HashMap<Integer, Integer>(300000);
for (int i=0; i<count; i++) {
int n = sc.nextInt();
tmp.put(i, n);
sum = sum + n;
if (i >= range) {
sum = sum - tmp.get(i-range);
}
if (sum > max) {
max = sum;
}
}
System.out.println(max);
}
}
var text = "";
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
text = text + chunk.toString();
});
process.stdin.on('end', function () {
main(text);
});
function main(data) {
var lines = data.split('\n');
var line = lines[0].split(" ");
var range = parseInt(line[0]);
var count = parseInt(line[1]);
var sum = 0;
var max = 0;
var tmp = {};
for(var i=1; i<=count; i++) {
var n = parseInt(lines[i]);
tmp[i] = n;
sum = sum + n;
if (i > range) sum = sum - tmp[i-range];
if (sum > max) max = sum;
}
console.log(max);
}
line = raw_input().split(" ")
rang = int(line[0])
count = int(line[1])
sum = 0
max = 0
tmp = []
for i in xrange(count):
n = int(raw_input())
tmp.append(n)
sum = sum + n
if i >= rang:
sum = sum - tmp[i - rang]
if sum > max:
max = sum
print max
#!/usr/bin/env ruby
line = gets.chomp.split(" ")
range = line[0].to_i
count = line[1].to_i
max = 0
sum = 0
tmp = []
count.times do |i|
n = gets.to_i
tmp[i] = n
sum = sum + n
if i >= range
sum = sum - tmp[i - range]
end
if sum > max
max = sum
end
end
print max, "\n"
object Main extends App {
val sc = new java.util.Scanner(System.in)
val range = sc.nextInt
val count = sc.nextInt
var sum : Long = 0
var max : Long = 0
var tmp = scala.collection.mutable.Map.empty[Int, Int]
for (i <- 1 to count) {
val n = sc.nextInt
tmp.put(i, n)
sum = sum + n
if (i > range) sum = sum - tmp(i-range)
if (sum > max) max = sum
}
println(max)
}
awk 'NR==1{range=$1}NR>1{sum=sum+$1-tmp[NR];tmp[NR+range]=$1;if(sum>max)max=sum}END{print max}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment