पूर्णांक के अनुक्रम को देखते हुए अनुक्रम के बाद के क्रम (लगातार पदों पर पूर्णांक) की सबसे बड़ी राशि पाते हैं। बाद में रिक्त हो सकता है (जिस स्थिति में योग 0 है)।
इनपुट को मानक इनपुट, प्रति पंक्ति एक पूर्णांक से पढ़ा जाता है। सबसे बड़ा योग मानक आउटपुट के लिए लिखा जाना चाहिए।
मैंने आपके लिए एक छोटा जनरेटर लिखा है:
#include <stdio.h>
#include <assert.h>
/* From http://en.wikipedia.org/wiki/Random_number_generation */
unsigned m_w;
unsigned m_z;
unsigned get_random()
{
m_z = 36969 * (m_z & 65535) + (m_z >> 16);
m_w = 18000 * (m_w & 65535) + (m_w >> 16);
return (m_z << 16) + m_w; /* 32-bit result */
}
int main(int argc, char **argv)
{
int i;
assert(argc == 3);
m_w = atoi(argv[1]);
m_z = atoi(argv[2]);
i = 10;
while (i--);
get_random();
i = atoi(argv[2]);
while (i--)
printf("%d\n", (int) get_random() << 8 >> 22);
return 0;
}
उदाहरण:
$ printf "1\n2\n-1\n4\n" | ./sum
6
$ printf "0\n-2\n-3\n" | ./sum
0
$ ./a.out 1 1 | ./sum
387
$ ./a.out 1 10 | ./sum
571
$ ./a.out 1 100 | ./sum
5867
$ ./a.out 1 1000 | ./sum
7531
$ ./a.out 1 10000 | ./sum
27268
$ ./a.out 1 100000 | ./sum
101332
$ ./a.out 1 1000000 | ./sum
187480
$ ./a.out 1 10000000 | ./sum
666307
./sumमेरा समाधान है./a.outजनरेटर है
आपके समाधान को ऊपर दिए गए सभी परीक्षणों के लिए उचित समय में चलना चाहिए (मेरा अंतिम परीक्षण मामले पर 1.2s में चलता है)।
सबसे छोटा कोड जीतता है।
संपादित करें : कृपया ऊपर दिए गए परीक्षणों में से एक पर एक उदाहरण प्रदान करें।
while (i--);अर्धविराम में समाप्त नहीं होनी चाहिए, क्या यह होना चाहिए?
#include <stdlib.h>हैatoi()।