1 / 6
Apr 2016

Po długiej i wytrwałej walce uzyskałem taki kod, lecz spoj upiera się, że WA. Czy ktoś potrafiłby mi wskazać mój błąd?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace strony
{
class Program
{
static void Main(string[] args)
{
string[] data = Console.ReadLine().Split(' ');
int recordscount = int.Parse(data[0]);
int perpage = int.Parse(data[1]);
string[] records = new string[100000];
int max = recordscount / perpage;
if (recordscount % perpage != 0)
{
max++;
}

        for (int i = recordscount - 1; i > -1; i--)
        {
            records[i] = Console.ReadLine();
        }
        recordscount--;
        int queries = int.Parse(Console.ReadLine());
        int page = 0;
        int start = 0;
        for (int j = 0; j < queries; j++)
        {
            page = int.Parse(Console.ReadLine());
            start = (page - 1) * perpage;

            if (page > max)
            {
                Console.WriteLine("HTTP 404");
            }
            else
            {
                StringBuilder sb = new StringBuilder(1000);
                int end = Math.Min(start + perpage, recordscount + 1);
                for (int k = start; k < end; k++)
                {
                    sb.Append(records[k]);
                    sb.Append("\n");
                }

                if (page > 5)
                {
                    sb.Append("[1]");
                    sb.Append(" ...");
                    for (int l = page - 3; l < page; l++)
                    {
                        sb.Append(' ');
                        sb.Append('[');
                        sb.Append(l);
                        sb.Append(']');
                    }
                    sb.Append(' ');
                }
                else
                {
                    for (int l = 1; l < page; l++)
                    {
                        sb.Append('[');
                        sb.Append(l);
                        sb.Append(']');
                        sb.Append(' ');
                    }
                }
                sb.Append(page);
                if (max - page > 5)
                {
                    for (int m = page + 1; m < page + 4; m++)
                    {
                        sb.Append(' ');
                        sb.Append('[');
                        sb.Append(m);
                        sb.Append(']');
                    }
                    sb.Append(" ... ");
                    sb.Append('[');
                    sb.Append(max);
                    sb.Append(']');
                }
                else
                {
                    for (int m = page + 1; m <= max; m++)
                    {
                        sb.Append(' ');
                        sb.Append('[');
                        sb.Append(m);
                        sb.Append(']');
                    }
                }
                Console.WriteLine(sb);
            }

            if (j != queries - 1)
            {
                Console.WriteLine();

            }
        }
    }
}

}

12 days later

A czy sprawdziłeś wynik dla danych przykładowych ?
Bo jeżeli tak, to niedokładnie :slight_smile:

spraaawdzałem...
nawet 3 razy, teraz czwarty i nadal nie widzę, co jest nie tak :slight_smile:
Wskażesz ślepemu palcem?

Znaczy się niedokładnie...
Niech Ci SPOJ wynagrodzi :slight_smile: I dzięki.

1 year later

To nie zalicza:

char rec[100100][110];

To zalicza:
char rec[200100][510];

Pierwszą stronę można mieć na luzie.