Evet sütünü teker teker dolaşıp , o sütündaki elemanlardan birisi diğerleri ile xor landığında sonuçu 0 olmuyorsa bunu yazdırmamız isteniyor.
http://codeforces.com/contest/1151/problem/B
Örneğin
1 3 5 1
1 3 5 2
1 3 5 1
İlk üç sütünda aynı elemanlar var fakat sonuncu sütünda diğer satırlardan farklı bir eleman var("2"). Bu eleman için xor sonuçu her satırda 0'dan farklı olacaktır.
http://codeforces.com/contest/1151/submission/53016420
import std.stdio;
import std.math;
import std.algorithm;
import std.array;
import std.string;
import std.conv;
import std.range;
import std.file;
import std.datetime;
int dizgedeTekElemanVarmı( int[] dizge )
{
int[int] tablo;
for ( int i = 0; i < dizge.length; i++ )
{
tablo[dizge[i]]++;
}
for ( int i = 0; i < dizge.length; i++ )
{
if (tablo[dizge[i]] == 1)
return i+1;
}
return -1;
}
void main() {
int[] satırSütünSayısı = stdin.readln.strip.split.map!(a=> a.to!int()).array;
// Bu if check'i sonradan ekledim sadece tek satırlı durumları ele alıyor biraz büyük oldu çirkin gözüktü atlanabilir
if ( satırSütünSayısı[0] == 1 )
{
int[] dizgi = stdin.readln.strip.split.map!(a=> a.to!int()).array;
for ( int i = 0; i < dizgi.length; i++ )
{
if (dizgi[i] != 0)
{
writeln("TAK");
return writeln(i+1);
}
}
return writeln("NIE");
}
int[][] satırlar = stdin
.byLine()
.take(satırSütünSayısı[0])
.map!(line => line
.split
.map!(a => to!int(a))
.array()).array;
// Burası gerçekden iş yapan kısım
for ( long i = 0; i < satırSütünSayısı[1]; i++ )
{
int sıra = dizgedeTekElemanVarmı( satırlar.transposed[cast(int)i].array );
if ( sıra != -1 )
{
writeln("TAK");
writeln(sıra, " ", i+1);
return;
}
}
writeln("NIE");
//writeln();
}
Her nedense 9. testde patlıyor ve çatlıyorum.
Internet arayüzü datayı tam göstermiyor satıra sığmadığı için
819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 819 81... ---> ne yazıkki patladığım yeri göremiyorum :(
Acaba hatamı bulabilecek birisi varmıdır ?
Erdemdem
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]