메타의 종류 : 가장 짧은 답변 중 가장 길다


14

당신의 임무-당신이 그것을 받아들이면- 경쟁 의 승자를 계산하여 메타 에 대한 나의 제안을 이해하는 데 도움이되는 프로그램을 작성하는 것입니다. 물론이 질문에 대한 답변은 제안 된대로 처리되므로 귀하의 프로그램 (정확한 경우)은 귀하의 답변이 수락 된 답변이 될지 여부를 계산할 수 있습니다.

규칙

  • 프로그램은 다음 형식의 여러 줄이있는 파일을 읽습니다 (아래 예 참조). [Language] TAB [NumberOfCharacters] TAB [LinkToAnswer]
  • 파일 이름이 프로그램에 인수로 전달되거나 파일이 프로그램의 표준 입력으로 경로 재 지정됩니다. 그것은 당신의 선택입니다, 답변을 줄 때 방법을 언급하십시오
  • 입력 형식이 올바른 것으로 예상됩니다. 오류 처리가 필요하지 않습니다.
  • 문자 수는 양수입니다. 프로그램은 최대 65535까지의 길이를 처리해야합니다. 64k이면 누구나 충분합니다 :-)
  • 이 프로그램은 메타 제안의 아이디어를 충족시키는 표준 출력으로 해당 행을 출력합니다.
    • 특정 프로그래밍 언어의 가장 짧은 코드가 승리합니다 (감소 단계)
    • 모든 프로그래밍 언어 중에서 가장 긴 코드가 승리합니다 (정렬 단계).
    • 추첨의 경우 길이가 같은 모든 답변이 인쇄됩니다.
  • 출력 순서는 중요하지 않습니다
  • 가장 긴 코드가이기는하지만 이것은 이 아닙니다 . 프로그래밍 언어에 대한 코드는 가능한 짧아야합니다.
  • 코드를 단축하려고 시도하지 않는 프로그래밍 언어에 대한 대답은 이러한 종류의 질문의 의도를 우회하려고 시도하기 때문에 공감할 가치가 있습니다. 특정 프로그래밍 언어에 대한 답변이 하나만있는 경우 승자 후보로 간주되므로 코드를 날릴 수 있습니다.

입력 파일 예 (서식에 문제가있는 경우 단일 탭으로 구분) :

GolfScript  34  http://short.url/answer/ags
GolfScript  42  http://short.url/answer/gsq
C#  210 http://short.url/answer/cs2
Java    208 http://short.url/answer/jav
C#  208 http://short.url/answer/poi
J   23  http://short.url/answer/jsh
Ruby    67  http://short.url/answer/rub
C#  208 http://short.url/answer/yac
GolfScript  210 http://short.url/answer/210

예상 출력 (순서는 중요하지 않음) :

C#  208 http://short.url/answer/poi
C#  208 http://short.url/answer/yac
Java    208 http://short.url/answer/jav

최신 정보

일부 프로그램은 단일 최대 값 (C # 210 문자 프로그램과 같은)이 있다는 사실에 의존합니다. 현실에서 파생 된 사람은 210 자로 된 GolfScript 프로그램을 작성할 수도 있습니다. 출력은 동일하게 유지됩니다. 이러한 GolfScript를 입력에 추가했습니다.

업데이트 2

제안한대로 다시 태그를 추가하고 (여전히 코드 골프) 마감일은 2014-03-06입니다 (임의의 날짜처럼 보이지만 여행을 마치면 독일로 돌아갑니다).

최종 결과

다음과 같이 투표하기로 결정했습니다.

  • 문자 수를 확인할 수없는 답변은 개수를 설명하는 주석을받습니다.
  • 쉽게 줄일 수있는 답변은 의견, 편집 제안을 받고 더 낮은 카운트 값으로 결과를 얻습니다. (나는 그것을 미리 보았습니다).
  • 컴파일하지 않은 답변은 공감대를 얻습니다. (매우 어려운 작업이 나옵니다).
  • 골을 넣지 않은 답변은 이미 규칙에 설명 된대로 다운 보트를받습니다.
  • 예상 출력을 생성하는 답변은 공감대를 얻습니다. 예상대로 작동하지 않는 일부 답변으로 인해 4 가지 입력 파일을 사용하고 예상 결과를 확인합니다.

마지막으로, 적격 답변 표를 참조 프로그램에 대한 입력으로 제공하고 결과를 수동으로 두 번 확인하여 당첨자를 결정합니다. 내 대답이이기는 것이면 목록에서 제외합니다. 승자가 여러 명인 경우 하나만 선택하면됩니다. 따라서 몇 가지 보너스를 얻을 수 있습니다.

  • 예상보다 많은 입력을받는 답변 (예 : 정의 된 범위를 벗어난)
  • 짧게 만드는 영리한 아이디어를 사용하는 답변

2014 년 3 월 6 일 19:45 UTC + 1에 대한 답변의 스냅 샷을 작성했습니다. 분석이 진행 중입니다. 모든 답변을 확인하는 것이 예상보다 어렵습니다 ...


지금이 코드 도전 에 태그되어서는 안 됩니까? 또한 마감일은 언제입니까?
The 컨스트럭터

2
이에 대한 대체 이름은 Code-Blackjack
VoronoiPotato입니다.

답변:


2

자바-556

import java.util.*;class G{public static void main(String[]x){TreeMap<?,TreeMap>m=new TreeMap();try{Scanner s=new Scanner(System.in);for(;;){String[]a=s.nextLine().split("\t");a(new Long(a[1]),a(a[0],m)).put(a[2],a);}}catch(Exception e){}TreeMap<?,Map<?,String[]>>n=new TreeMap();for(TreeMap o:m.values())a(o.firstEntry().getKey(),n).putAll((Map)o.firstEntry().getValue());for(String[]o:n.lastEntry().getValue().values())System.out.println(o[0]+"\t"+o[1]+"\t"+o[2]);}static<T>Map a(T t,Map m){if(m.get(t)==null)m.put(t,new TreeMap());return(Map)m.get(t);}}

프로그램은 STDIN에서 읽습니다.

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

class G {
    public static void main(String[] x) {
        TreeMap<?, TreeMap> m = new TreeMap();
        try {
            Scanner s = new Scanner(System.in);
            for (; ; ) {
                String[] a = s.nextLine().split("\t");
                a(new Long(a[1]), a(a[0], m)).put(a[2], a);
            }
        } catch (Exception e) {
        }
        TreeMap<?, Map<?, String[]>> n = new TreeMap();
        for (TreeMap o : m.values())
            a(o.firstEntry().getKey(), n).putAll((Map) o.firstEntry().getValue());
        for (String[] o : n.lastEntry().getValue().values())
            System.out.println(o[0] + "\t" + o[1] + "\t" + o[2]);
    }

    static <T> Map a(T t, Map m) {
        if (m.get(t) == null)
            m.put(t, new TreeMap());
        return (Map) m.get(t);
    }
}
  1. 프로그램은 예외 ArrayIndexOutOfBoundsException가 발생할 때 까지 한 줄씩 읽습니다 ( 빈 줄이 있거나 NoSuchElementException입력이 줄 바꿈없이 종료되는 경우). 각 행 읽기는 (왼쪽에서 오른쪽으로 : 언어, 코드 크기, URL, 입력) TreeMap m으로 정의 될 수있는에 추가됩니다 TreeMap<String, TreeMap<Long, TreeMap<String,String[]>>>.
  2. 그런 다음 TreeSet<Long, TreeSet<String, String[]>> n모든 언어의 내용 firstEntry()이 집계 되는 결과 (왼쪽에서 오른쪽으로 : 코드 크기, URL, 입력)가 작성 됩니다.
  3. lastEntry()집계 TreeMap된 결과 중 하나에 결과가 포함됩니다. 인쇄 만하면됩니다.

ideone.com에서 시도하십시오 (마지막 두 줄의 입력을 전환하여 모든 줄을 읽었 음을 보여줍니다)


-.- 매장의 BufferedReader에 변수를 추가했다
TheConstructor

1
var 키워드가 없기 때문에 Java가 이번에 이길 수도 있습니다 ...
Thomas Weller

@ThomasW. 그냥 -.- golfed 버전 안에 {} 불필요한 왼쪽 실현
TheConstructor

또한 Integer를 사용하고 있다는 것을 알았습니다. int가 long보다 짧지 만 Integer는 Long -.-
The Constructor

2

펄, 195 바이트

while(<>){/(\S+)\t(\d+)\t(.+)/;push@{$a{$1}},$3if$2==$l{$1};$l{$1}=$2,$a{$1}=[$3]if $2<($l{$1}//65536)}$m=(sort{$b<=>$a}values%l)[0];map{$l=$_;map{print"$l\t$m\t$_\n"if$l{$l}==$m}@{$a{$l}}}keys%l

STDIN에 입력이 예상되며 STDOUT에 결과가 기록됩니다.

C#      208     http://short.url/answer/poi
C#      208     http://short.url/answer/yac
Java    208     http://short.url/answer/jav

언 골프 버전

#!/usr/bin/env perl
use strict;
$^W=1;

# hash %language remembers the minimum count for a language
# %language: <language> => <minimum count>
my %language;
# hash %array remembers the URLs for the minimum count of the language
# %array: <language> => [<url>, <url>, ....]
my %array;

while(<>){
    # parse input line (no error checking)
    /(\S+)\t(\d+)\t(.+)/;
    my ($lang, $count, $url) = ($1, $2, $3);
    # add URL, if the count is the current minimum for the language
    if ($count == ($language{$lang}//0)) {
    # better, but longer version:
    # if (defined $language{$lang} and $count == $language{$lang}) {
        push @{$array{$lang}}, $url;
    }
    # create a new entry for the language, if there is a new minimum
    if ($count < ($language{$lang}//65536)) {
    # better, but longer version:
    # if (not defined $language{$lang} or $count < $language{$lang}) {
        $language{$lang} = $count;
        $array{$lang} = [$url];   
    }
}

# Sort the minimal values in numerical descending order and
# get the first entry as maximum.
my $maximum = (sort { $b <=> $a } values %language)[0];

# Loop over all URLs of minimal answers for the language,
# but print only the entries for the languages with the largest
# minima.
foreach my $lang (keys %language) {
    foreach my $url (@{$array{$lang}}) {
        if ($language{$lang} == $maximum) {
            print "$lang\t$maximum\t$url\n";
        }
    }
}
__END__

@grovesNL이 지적했듯이 Heiko는 일부 프로그램에 단일 최대 값이 있다는 사실에 의존 할 수 있습니다. 프로그램이 영향을 받는지 확인할 수 있습니다. GolfScript 210 http://short.url/answer/210입력에 줄을 추가 하고 출력이 동일하게 유지되는지 확인하십시오. 실제로 나는 당신이 최대로 [0]을 사용하고 있기 때문에 당신에게 영향을 미치지 않는다고 생각하지만, 지금 시도해 볼 수있는 Perl을 가지고 있지 않습니다.
Thomas Weller

@ThomasW .: 영향을받지 않습니다. 나는 라인을 추가했고 출력은 동일하게 유지됩니다. 파일을 읽는 첫 번째 부분 이후에 데이터 구조 %l/ %language는 언어와 최소값을 포함합니다. 데이터 구조 %a/ %array해당 언어 / URL 쌍만 포함하며 값은이 언어의 최소값입니다. 그런 다음 최소값은 내림차순으로 정렬되고 첫 번째 값은 전역 최대 값과 %a/의 필터 조건으로 사용됩니다 %array.
Heiko Oberdiek 2012

2

파이썬 378 377 372

import sys
d=__import__("collections").defaultdict(list)
o={}
x=int
n="\n"
for i,l,u in[a.split()for a in sys.stdin.read().strip().split(n)]:d[i]+=[(l,u)]
for e,b in d.items():o[e]=[i for i in b if i[0]==str(min([x(i[0])for i in b]))]
print("".join(n.join("\t".join([u,s[0],s[1]])for s in y if x(s[0])==max(x(i[0][0])for i in o.values()))+n for u,y in o.items()).strip())

stdin에 입력 :

C:\Users\gcq\Documents\python>type m.txt | python test.py
C#      208     http://short.url/answer/poi
C#      208     http://short.url/answer/yac
Java    208     http://short.url/answer/jav

그리고 이것은 551 자로 압축하기 전에 내가 가진 것입니다.

from collections import defaultdict
import sys
d = defaultdict(list)

for language, length, url in [a.split() for a in sys.stdin.read().strip().split("\n")]:
    d[language].append((length, url))

o = {}
for language, data in d.items():
    winval = data[0][0]
    for i in data:
        if int(i[0]) < int(winval):
            winval = i[0]
    o[language] = [i for i in data if i[0] == winval]

maxlen = max(int(i[0][0]) for i in o.values())

for language, dataa in o.items():
    for data in dataa:
        if int(data[0]) == maxlen:
            print("\t".join([language, data[0], data[1]]))

1

C #-628

다음은 사용하는 더 긴 대안입니다 DataTable.

using Microsoft.VisualBasic.FileIO;namespace System{using T=Data.DataTable;using R=Data.DataRow;using V=Data.DataView;using C=Data.DataColumn;class p{static void Main(string[] a){var I=typeof(Int32);T t=new T();t.Columns.AddRange(new[]{new C("a"),new C("b",I),new C("c"),new C("d",I)});var f=new TextFieldParser(a[0]);f.SetDelimiters("\t");while(!f.EndOfData){var r=t.NewRow();r.ItemArray=f.ReadFields();t.Rows.Add(r);}foreach(R r in t.Rows){r[3]=t.Compute("min(b)","a='"+r[0]+"'");}V v=new V(t);T s=v.ToTable();foreach(R r in s.Select("b='"+t.Compute("max(d)","")+"'")){Console.WriteLine(String.Join("\t",r[0],r[1],r[2]));}}}}

나는 원래 max / min을 사용하여 약간의 코드 축소를 얻을 수 있다고 생각 DataTable했지만 DataTable(행 / 열 /보기)를 작성 하는 데 필요한 유형 은 불행히도 많은 길이를 추가합니다. 코드 골프를 처음 봤으므로 누군가 더 줄일 수있을 것입니다. 여전히 재미있는 도전입니다.


1

DG - 286 281 260 251 218 바이트

import '/sys'
d=dict!
for(a,b,c)in(map str.split$(sys.stdin.read!).splitlines!)=>d!!a=(d.get a list!)+(list'(int b,c))
for(i,l)in(d.items!)=>for(s,u)in l=>s==(max$map(i->fst$min i)d.values!)=>print$i+' '+(str s)+' '+u

예:

$ cat langs.txt | dg langs.dg 
C# 208 http://short.url/answer/poi
C# 208 http://short.url/answer/yac
Java 208 http://short.url/answer/jav

언 골프 버전 :

import '/sys'

s = sys.stdin.read!
d = dict!
# convert the string into a list of tuples (name, score, url)
u = map str.split $ s.splitlines!
# add all the values to the dict (converting the score to an integer)
for (a, b, c) in u =>
  d!!a = (d.get a list!) + (list' (int b, c))
# computes the maximum value amongst the mins
m = max $ map (i -> fst $ min i) d.values!
for (i, l) in (d.items!) =>
  for (s, u) in l =>
    # if the score equals the maximum then print all the line
    s == m => print $ i + ' ' + (str s) + ' ' + u  # actually here .format()
                                                   # would be better

Q : dg는 무엇입니까?
A : Scala가 JVM으로 컴파일하는 것처럼 CPython 바이트 코드로 컴파일하는 프로그래밍 언어입니다. 이는 본질적으로 dg가 Python 3의 대안 구문임을 의미합니다. 기존 라이브러리도 모두 사용할 수 있습니다.

자세한 정보는 여기 (자습서!) : https://pyos.github.io/dg


파일에 넣으면 217 바이트 만 있습니다 (Linux 줄 끝)
Thomas Weller

@ThomasW. 기묘한! 사용 cat langs.dg | wc -c하면 218이됩니다!
rubik

후행 줄 바꿈과 후행 줄 바꿈이 없을까요?
생성자

@TheConstructor 그것은 줄 바꿈 oO와 함께 저장해서는 안되지만 가능할 수 있습니다
rubik

1

리볼-314

d: map[]foreach r read/lines to-file system/script/args[r: split r tab p: take r r/1: to-integer r/1 r/2: reduce[r/2]either none? d/:p[repend d[p r]][case[d/:p/1 > r/1[d/:p: r]d/:p/1 = r/1[append d/:p/2 r/2]]]]l: 0 foreach[k v]d[l: max l v/1]foreach[k v]d[if l = v/1[foreach n v/2[print rejoin[k tab v/1 tab n]]]]

골퍼가없는

d: map []

foreach r read/lines to-file system/script/args [
    r: split r tab
    p: take r
    r/1: to-integer r/1
    r/2: reduce [r/2]
    either none? d/:p [repend d [p r]] [
        case [
            d/:p/1 > r/1 [d/:p: r]
            d/:p/1 = r/1 [append d/:p/2 r/2]
        ]
    ]
]

l: 0 foreach [k v] d [l: max l v/1]
foreach [k v] d [
    if l = v/1 [
        foreach n v/2 [print rejoin [k tab v/1 tab n]]
    ]
]

사용 예 :

$ rebol script.reb data.txt
C#    208   http://short.url/answer/poi
C#    208   http://short.url/answer/yac
Java  208   http://short.url/answer/jav

0

C #-515

파일 이름을 인수로 예상합니다

using System.Collections.Generic;namespace N{using S=SortedList<int,T>;class T:List<string>{static void Main(string[]a){var d=new Dictionary<string,S>();int n,m=0;T w=new T();foreach(var l in System.IO.File.ReadAllLines(a[0])){var p=(a=l.Split('\t'))[0];n=int.Parse(a[1]);if(!d.ContainsKey(p))d.Add(p,new S());if(!d[p].ContainsKey(n))d[p].Add(n,new T());d[p][n].Add(l);}foreach(var e in d){n=e.Value.Keys[0];if(n==m)w.AddRange(e.Value[n]);if(n>m)w=e.Value[m=n];}foreach(var e in w)System.Console.WriteLine(e);}}}

먼저 일종의 참조 프로그램을 원했기 때문에 C # 프로그램을 간단하게 설계했습니다. 그러나 나는 또한 대회에 뛰어 들기로 결심하고 골프를 쳤다. 이것은 코드의 이전 버전 중 하나이며 주석입니다.

// N: namespace
// P: Program
// S: type definition: sorted dictionary
// a: arguments
// d: data container
// r: lines read from text file
// l: single line from r
// t: tabbed part of l after splitting
// p: programming language name
// n: character count
// m: maximum character count
// w: list of winners
// e: entry in data container
// c: winner candidate
using System.Collections.Generic;
namespace N
{
    using S = SortedList<int, P>;
    public class P : List<string>
    {
        public static void Main(string[] a)
        {
            var r = System.IO.File.ReadAllLines(a[0]);
            // Make it a data structure
            var d = new Dictionary<string, S>();
            foreach (var l in r)
            {
                var t = l.Split('\t');
                var p = t[0];
                var n = int.Parse(t[1]);
                if (!d.ContainsKey(p)) d.Add(p, new S());
                if (!d[p].ContainsKey(n)) d[p].Add(n, new P());
                d[p][n].Add(l);
            }
            // Get the maximum values
            var m = 0;
            P w = null;
            foreach (var e in d)
            {
                foreach (var s in e.Value.Keys)
                {
                    if (s > m)
                    {
                        w = e.Value[s];
                        m = s;
                    }
                    else if (s == m)
                    {
                        w.AddRange(e.Value[s]);
                    }
                    break; // Break here to get the shortest solution per language
                }
            }
            // Print everything on console
            foreach (var e in w)
            {
                System.Console.WriteLine(e);
            }
        }
    }
}

디스크의 515 파일 크기에 바이트 순서 표시가 포함 된 것 같습니다. 여기에서 복사 / 붙여 넣기는 512 바이트에 불과합니다.
Thomas Weller

0

C # -460 359

내 부피가 얼마나 큰지 깨닫고 나면 DataTable솔루션이 Linq를 사용하여 다음 예제를 작성했습니다. 이전 솔루션과 동일한 방법을 사용합니다.

골프

namespace System{using Linq;using IO;class p{static void Main(string[]i){var l=(from f in File.ReadAllLines(i[0])let s=f.Split('\t')select new Tuple<string,int,string>(s[0],Convert.ToInt16(s[1]),f)).ToList();foreach(var f in l.Where(a=>a.Item2==l.Where(b=>b.Item1==l.Single(c=>c.Item2==l.Max(d=>d.Item2)).Item1).Min(e=>e.Item2)))Console.WriteLine(f.Item3);}}}

언 골프

namespace System
{
    using Linq;
    using IO;
    class p
    {
        static void Main(string[]i)
        {
            var l=(from f in File.ReadAllLines(i[0])
                   let s=f.Split('\t')
                   select new Tuple<string, int, string>(s[0],Convert.ToInt16(s[1]),f)).ToList();
            foreach(var f in l.
                Where(a=>a.Item2==l.
                    Where(b=>b.Item1==l.
                        Single(c=>c.Item2==l.
                            Max(d=>d.Item2)).Item1).
                                Min(e=>e.Item2)))
            Console.WriteLine(f.Item3);
        }
    }
}

나는 여전히 Linq를 처음 접했기 때문에 그 표현을 더 줄일 수 있다고 거의 긍정적입니다.

귀하의 질문에 따르면 단일 최대 길이 솔루션이 있는지 확실하지 않습니다. 내 대답에는 단일 최대 포인트가 있다는 가정을 사용했습니다 (예 : GolfScript 최대 210도있는 경우 반환 된 단일 최대 레코드에 따라 실패 할 수 있음). Heiko의 솔루션에도 같은 문제가 있습니다. 이 문제를 해결하려면 각 언어의 최소값을 확인하기 위해 묶인 최대 값 목록이 포함 된 다른 단계를 추가해야합니다.


1
f를 s [2] 대신 Item3으로 저장 한 다음 Item1과 Item2를 다시 결합 할 필요없이 f.Item3을 콘솔에 쓸 수있는 것 같습니다.
Thomas Weller

요구 사항을 명확히 해주셔서 감사합니다. 현실에서 파생 된 나는 누군가 (분명히, 경험이 없더라도) 210 문자로 GolfScript를 작성할 수 있다고 말할 것입니다.
Thomas Weller

1
당신은 LINQ에 대한 첫 번째 foreach는 루프를 변환하면, 심지어는 짧아집니다 :namespace System{using Linq;using IO;class p{static void Main(string[]i){var l=(from f in File.ReadAllLines(i[0])let s=f.Split('\t') select new Tuple<string, int, string>(s[0],Convert.ToInt16(s[1]),f)).ToList();foreach(var f in l.Where(a=>a.Item2==l.Where(b=>b.Item1==l.Single(c=>c.Item2==l.Max(d=>d.Item2)).Item1).Min(e=>e.Item2)))Console.WriteLine(f.Item3);}}}
토마스 웰러

@ThomasW .: 분할에 대한 좋은 아이디어. foreach 루프 변환에 감사드립니다. 원래 추가하는 것에 대해 생각했지만 그렇게 할 수는 없었습니다.
grovesNL

내가 당신의 쿼리 : 그것은이 같은 간단한 입력에 실패합니다 않는 것을 이해하기 시작 생각 : Golfscript 100 ..., C# 1 ..., C# 200 .... 이것은 아마 재 작업이 필요합니다
토마스 웰러에게

0

C ++-535

각 언어의 최단 답변 만 잠재적 승자로 선택한 후 가장 긴 위치에 대한 답변 만 출력합니다.

#include<fstream>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){

    string s;
    vector<string>l;
    vector<int>v;
    vector<string>u;
    cin>>s;

    ifstream i(s.c_str());

    do{
        int n;
        i>>s;
        if(i.eof())break;
        l.push_back(s);
        i>>n;
        v.push_back(n);
        i>>s;
        u.push_back(s);
    }while(1);

    for(int i=0;i<l.size();i++){
        for(int j=0;j<l.size();j++){
            if(l[j]==l[i]){
                if(v[i]>v[j])l[i]="";
                else if(v[i]<v[j])l[j]="";
            }
        }
    }
    int n=0;
    for(int i=0;i<v.size();i++)
        if(n<v[i]&l[i]!="")n=v[i];

    for(int i=0;i<v.size();i++)
        if(v[i]==n)cout<<l[i]<<'\t'<<v[i]<<'\t'<<u[i]<<endl;
}

골프를 쳤다 (일부 언어만큼 읽을 수 없음) :

#include<fstream>
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){string s;vector<string>l;vector<int>v;vector<string>u;cin>>s;ifstream i(s.c_str());do{int n;i>>s;if(i.eof())break;l.push_back(s);i>>n;v.push_back(n);i>>s;u.push_back(s);}while(1);for(int i=0;i<l.size();i++)for(int j=0;j<l.size();j++)if(l[j]==l[i]){if(v[i]>v[j])l[i]="";else if(v[i]<v[j])l[j]="";}int n=0;for(int i=0;i<v.size();i++)if(n<v[i]&l[i]!="")n=v[i];for(int i=0;i<v.size();i++)if(v[i]==n)cout<<l[i]<<'\t'<<v[i]<<'\t'<<u[i]<<endl;}

예상 출력과 비교하여 출력을 확인 했습니까? 8 줄의 입력으로 3 줄만 출력합니다. 프로그램이 모든 것을 출력하는 것 같습니다.
Thomas Weller

@ThomasW. 오, 나는 그 부분을 오해했다. 지금은 제거하겠습니다.

@ThomasW. 이것이 올바르게 보입니까?

파일에 넣으면 535 바이트가 아닌 540 바이트를 얻습니다. 길이를 다시 확인할 수 있습니까?
Thomas Weller

535 자입니다. 우리 둘 다 맞아 원한다면 바꿀 수 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.