POH! 4Lite가 너무 쉬웠기 때문에 사바를 조사했습니다.
8261 단어 paiza
소개
POH에서 C#은 C라이브러리를 직접 부르거나 자전에서 문자열 수치 변환하는 등의 행위는 일부에서 불평을 샀다.
전회, 사바의 내용이 Ubuntu라고 깨달았기 때문에 디바이스 파일 경유라면 좋지 않을까 생각했지만 그렇게도 아니었다.
그리고 그 과정에서/dev/stdout을 사용할 수 없다는 것을 깨달았다.
조사
어떻게 조사하면 좋은가에 대해서이지만 다음과 같이 bash로 명령을 치면 좋다.
;結果は
lrwxrwxrwx 1 root root 15 Dec 4 10:29 /dev/stdout -> /proc/self/fd/1
l-wx------ 1 runner2 ubuntu 64 Dec 4 10:29 /proc/self/fd/1 -> /workspace/exec_stdout.txt
-rw-r--r-- 1 root root 160 Dec 4 10:29 /workspace/exec_stdout.txt
Linux 263a4c739076 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
위와 같이/workspace/exec_stdout.txt로 리디렉션되고 있지만 중요한 write권이 없기 때문에 심볼릭 링크에 write권이 있어도 안 된다.
user는 runnerX이며 루트 이외에 쓸 수없는 exec_stdout.txt에는 어쩔 수 없다.
그리고 gcc라든지가 움직이기 때문에 쉘을 두드려 모든 언어에 대해 c 소스 컴파일 해 실행으로 클리어 할 수 있을 것이다.
사실은 그 손을 이번에 사용할 생각이었지만, 과제가 너무 쉬워서 그만두었다.
출처
지금 보고 깨달았지만 head와 tail이 반대? (어느 쪽이라도 좋을 것 같다). 왠지 백하는 장어라고 하는 일로 해 두었으면 한다.
덧붙여 코멘트 부분을 복귀해 read와 printf를 삭제하면 일단 C#만의 코드가 되므로, 실행 시간을 비교해 보면 좋을지도 모른다.
ReadInt라고 하면서 uint인 것은 300000x10000이 21억을 넘는 것에 대한 대응이며 리네임 잊기도 한다.
using System;
using System.IO;
using System.Runtime.InteropServices;
public class Query3
{
[DllImport("libc")]
static extern int read(int handle, byte[] buf, int n);
[DllImport("libc")]
static extern void printf(string format, uint value);
static byte[] buf = new byte[10000000];
static int index = 0;
static uint ReadInt()
{
uint ret = 0, tmp;
while ((tmp = buf[index++]) >= '0')
ret = ret * 10 + (tmp - '0');
return ret;
}
static void Main(string[] args)
{
//var f = File.OpenRead("/dev/stdin");
// f.Read(buf, 0, 10000000);
read(0, buf, 10000000);
var t = ReadInt();
var n = ReadInt();
uint sum = 0, tail = 0, max = 0, head = 0;
uint[] array = new uint[n];
var loop = t;
while ((loop--) > 0)
{
sum += array[tail++] = ReadInt();
}
max = sum;
loop = n - t;
while ((loop--) > 0)
{
sum = sum + (array[tail++] = ReadInt()) - array[head++];
if (sum > max)
{
max = sum;
}
}
//Console.WriteLine(max);
printf("%u\n", max);
}
}
Reference
이 문제에 관하여(POH! 4Lite가 너무 쉬웠기 때문에 사바를 조사했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/IL_k/items/df1fa56fd161d5464f1f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)