কোডগল্ফ - অগোছালো বিকাশকারী ব্যারি # 2


11

এটি কোডগল্ফ -এর একটি ফলোআপ - এই শব্দটিকে # 1 উপেক্ষা করুন ব্যারিটি আমাদের জন্য পরিস্থিতি আরও খারাপ করে দিয়েছে being আসুন দেখে নেওয়া যাক

হালনাগাদ

আমি এলোমেলো ইনপুট এবং প্রত্যাশিত আউটপুট তৈরি করতে কোড যুক্ত করেছি কারণ আমি যা চাই তা ব্যাখ্যা করার ক্ষেত্রে আমি তেমন ভাল নই এবং আমার ধারণা যে কখনও কখনও কোডগুলি কোডের চেয়ে শব্দগুলি আরও বিভ্রান্তিকর হয় (সবসময় তাই না?)

বিবরণ

আরেকটি পদ্ধতি মূক কর্পোরেশন এর এপিআই আমাদের বর্তমান মূল্য একটি প্রদানকারী একটি আইটেম জন্য আমাদের সাথে প্রদান করা হয়, অনুকূল মূল্য আমরা সর্বোচ্চ বিক্রয় উপার্জন হবে এবং যে দাম প্রবণতা একটি স্ট্রিং হিসাবে পূর্ববর্তী দাম তুলনায় দেয় UPবা DOWN। আমাদের দোকান থেকে আইটেমটি সরিয়ে নেওয়া বা অপেক্ষা করা উচিত কিনা তা আমাদের সিদ্ধান্ত নেওয়া উচিত।

ইনপুট

80,90,UP
150,100,DOWN
65,65,UP
1618,1618,DOWN
840,1200,DOWN
54,12,UP
30,1,UP

প্রত্যাশিত আউটপুট সহ একটি বিশাল ইনপুট নমুনা ডেমো জন্য, আপনার ব্রাউজার কনসোলে নিম্নলিখিত কোড (জেএস) রাখুন এবং এটি পরীক্ষার জন্য বৈধ র্যান্ডম ইনপুট আউটপুট করা উচিত।

var output = "";
var result = "";

for(i=10;i--;){
  var currentPrice = Math.floor(Math.random() * 10000) + 1;
  var optimalPrice = Math.floor(Math.random() * 10000) + 1;
  var tendency = Math.round(Math.random())?"UP":"DOWN";
  var tresult = "WAIT\n";

  if((currentPrice > optimalPrice && tendency == "UP") ||
     (currentPrice < optimalPrice && tendency == "DOWN")){
       tresult = "STOP\n";
     }

  output +=currentPrice+","+optimalPrice+","+tendency+"\n";
  result +=tresult;
}
console.log(output);
console.log(result);

বরাবরের Gমতো আমাদের ইনপুট হিসাবে একটি পরিবর্তনশীল থাকবে , তবে আপনার ভাষা যদি আপনার পক্ষে সহজভাবে ইনপুটটি পড়তে সহজ করে তোলে তবে তাও ঠিক। ফর্ম্যাটটি স্থির থাকে এবং ফর্ম্যাটটি অনুসরণ করেint,int,string

পছন্দসই আউটপুট

আপনি এই অপারেশনের মস্তিষ্ক, ব্যারিটি সার্ভারে এই গণনা করা উচিত, তবে আপনার জানা উচিত হিসাবে আমরা তার উপর নির্ভর করতে পারি না। WAITপ্রবণতা সর্বোত্তম দামের দিকে থাকলে বা প্রবণতা হারাতে থাকলে আপনার আউটপুট তৈরি করতে হবে STOP

অন্য কথায়, 80,90,UPইনপুট হিসাবে, আমরা জানি যে এখানে বর্তমান দামের একটি পণ্য রয়েছে এবং উত্থানের প্রবণতা সহ 90 এর সর্বোত্তম মূল্য রয়েছে, সুতরাং আমাদের উচিত WAIT। অন্যদিকে, 840,1200,DOWNমানে পণ্যটির দাম হ্রাস পাচ্ছে এবং আমাদের সর্বোত্তম দাম বেশি, সুতরাং আমাদের আউটপুট করে ক্ষয়ক্ষতি বন্ধ করা উচিত STOP

দুটি দাম যদি অভিন্ন WAITহয় তবে প্রবণতা নির্বিশেষে আউটপুট ।

একটি নতুন লাইনে প্রতিটি পণ্য, প্রতি লাইনে একক শব্দ:

WAIT
WAIT
WAIT
WAIT
STOP
STOP
STOP

দয়া করে, সম্ভব হলে, আপনার কোডটি কাজ করছে কিনা যাচাইয়ের একটি উপায় সরবরাহ করুন যেহেতু আমরা সবাই কেবল বাক্যবিন্যাস দেখে জানতে পারি না। সর্বদা হিসাবে, যতটা সম্ভব অক্ষর ব্যবহার করুন এবং মনে রাখবেন যে আপনি অগত্যা অন্যান্য ভাষার বিরুদ্ধে প্রতিদ্বন্দ্বিতা করছেন না, অনুরূপ বাক্য গঠন সহ আপনার ভাষার প্রতিযোগিতা করছেন


আপনার পরীক্ষার ডেটা প্রত্যাশিত ফলাফল ছাড়াই মারাত্মকভাবে কার্যকর নয়।
চার্লস

@ নোটহাটচারেলস: আমি নিশ্চিত যে পোস্টের পছন্দসই আউটপুট বিভাগের ব্লকটি ইনপুট বিভাগের পরীক্ষার ডেটার প্রত্যাশিত ফলাফল।
অ্যালেক্স এ।

আমি "বিশাল ইনপুট নমুনা" বলতে
চার্লস

আমি এখন উপলব্ধি করেছি যে এটি সত্যিই সহায়ক ছিল না, প্রত্যাশিত আউটপুট সরবরাহ করার জন্য কোডটি আপডেট করে।
হুয়ান কর্টেস

5
আপনি চরিত্রগুলিতে স্কোরিং পছন্দ করার কোনও কারণ আছে কি? এখানে প্রায় ডিফল্ট বাইটস ( অংশগ্রহণকারীদের পছন্দের বিদ্যমান এনকোডিংয়ে)। অক্ষরগুলির সাহায্যে আপনি কেবল তাদের কোডটি ইউনিকোডের অক্ষরগুলিতে এবং এ জাতীয় জিনিসগুলিতে এনকোড করে সংকোচন করতে পারেন। (আপনার পছন্দ যাই হোক না কেন, এখনই এই চ্যালেঞ্জের জন্য এটি পরিবর্তন করবেন না, তবে আপনি ভবিষ্যতের চ্যালেঞ্জগুলির জন্য এটি মাথায় রাখতে চাইতে পারেন))
মার্টিন ইন্ডার

উত্তর:


6

সিজেম, 31 29 27 টি অক্ষর

"㫅㍸ꕆ敟鸢Ꝓ約䢫솓儓隆뻨"2G#b128b:c~

এটি কেবলমাত্র নিম্নলিখিত কোডের একটি এনকোডড সংস্করণ (অক্ষর দ্বারা স্কোরিংটি ব্যবহার করার জন্য):

r{',/:~3<)(f*~<"STOP""WAIT"?Nr}h

সমস্ত পরীক্ষার মামলা এখানে চালান।

এনকোডিং করে এটি ছোট করার কোনও উপায় থাকতে পারে STOPএবং WAITতবে আমি বাকী অংশে বেশ খুশি happy

ব্যাখ্যা

কোডটি একটি লুপ দ্বারা ঘিরে থাকে যা একবারে লাইনে পড়ে, এটি প্রক্রিয়া করে, তারপরে একটি নতুন লাইন চাপ দেয় এবং পরবর্তী লাইনটি পড়ে ... লুপটি একবারে rখালি স্ট্রিং দেয় (অর্থাত্ সমস্ত লাইন প্রক্রিয়াজাত হওয়ার পরে) ফিরে আসে। এটি এই বিট:

r{ ... Nr}h

প্রতিটি লাইনের প্রক্রিয়াজাতকরণের জন্য, আমি এই সত্যটি ব্যবহার করছি যে উচ্চতর ক্ষেত্রে বর্ণগুলি সিজেমে ভেরিয়েবল হয়, তাই আমি কিছু ইনপুট প্রকাশ করতে পারি।

',/:~3<)(f*~<"STOP""WAIT"?
',/                        e# Split the input on commas.
   :~                      e# Eval each of the three resulting strings. The first two
                           e# will yield the prices, the third will dump a bunch of
                           e# values corresponding to the variables DNOPUW in the array.
     3<                    e# Truncate to three elements, so we only get the prices and
                           e# the values corresponding to U (0) and D (13).
       )(                  e# Slices off that variable value and decrement it, to get
                           e# something negative for UP and positive for DOWN.
         f*                e# Multiply both numbers by that value. So if we had UP then
                           e# both numbers will be negative now, otherwise they'll just
                           e# be scaled without affecting their relative size.
           ~<              e# Unwrap the array and check which element is larger.
             "STOP""WAIT"? e# Select the desired output string based on this boolean.

সুতরাং ধরাটি হ'ল UPআমরা দামগুলির আপেক্ষিক আকারগুলি উল্টে দিই, যাতে আমরা শেষের দিকে একক অসমতার সাথে সমস্ত কেস কভার করতে পারি।


আমি ওপি থেকে স্পষ্টতার জন্য অনুরোধ করেছি এবং তিনি বলেছিলেন কোডটি ইনপুটটির বেশ কয়েকটি লাইনের জন্য কাজ করা উচিত। এটি অর্জনের সবচেয়ে সংক্ষিপ্ততম "㫅㍸ꕆ敟鸢Ꝓ約䢫솓儓隆뻨"2G#b128b:c~
ডেনিস

@ ডেনিস উগ, চরিত্রগুলি দ্বারা স্কোরিং ... ধন্যবাদ
মার্টিন এন্ডার


4

পার্ল, 77 73 বাইট

while(<>){@p=split",";print($p[0]<$p[1]and$p[2]=~/D/?"STOP":"WAIT")."\n"}

এখানে কিভাবে এটা কাজ করে:

  • while(<>) প্রতিটি লাইন পার্স করে।
  • @p=split","প্রতিটি কমা দ্বারা এটি বিভক্ত। এটি ডিফল্ট পার্ল অপারেটর ব্যবহার করছে, $_(এটি যেখানে লাইনটি সঞ্চিত রয়েছে))
  • print (ternary) কি মুদ্রণ করতে হবে তা নির্ধারণ করে।
  • $p[0]<$p[1]and$p[2]=~/D/ বর্তমান দামটি আমরা চাই দামের চেয়ে কম কিনা তা জিজ্ঞাসা করে, এবং এটি হ্রাস পাচ্ছে (ডি। পরীক্ষা করে)
  • (condition)?(if):(else) টেরিনারি অপারেটর।
  • আমাদের শর্তটি যদি এর আগে মিলে যায় তবে এটি আউটপুট হবে STOP। অন্যথায়, এটি আউটপুট করব WAIT

আমি ধরে নিচ্ছি ইনপুটটিতে কোনও অনুচক্রী নিউলাইন নেই - একটি ট্রেলিং নিউলাইন অতিরিক্ত তৈরি করে WAIT

4 বাইট বাঁচাতে আমাকে সাহায্য করার জন্য অ্যালেক্স এ-কে ধন্যবাদ!


মঞ্জুর হয়েছি যে পার্ল ব্যবহার করার পরে এটি বেশ খানিকটা সময় হয়ে গেছে, তবে কি তা হওয়া উচিত and? আপনি ব্যবহার করতে পারেন &বা কিছু?
অ্যালেক্স এ।

@AlexA। আমি নিশ্চিত না কেন, তবে &&অদ্ভুত আচরণ করে। আমি এটি ব্যবহার করার চেষ্টা করেছি এবং এটি বলেছিল যে এখানে একটি "মিল নেই <>"।
ASCIIThenANSI

হাহ। রহস্যময়। আচ্ছা ভালো. সুন্দর সমাধান।
অ্যালেক্স এ।

আপনি কি একক কল করতে পারেন printএবং ঠিক এর মতো কিছু করতে পারেন print((condition)?"STOP":"WAIT")."\n"?
অ্যালেক্স এ।

@AlexA। হু, আপনি জানেন না যে আপনি এটি করতে পারেন। ধন্যবাদ!
ASCIIThenANSI


3

আর, 95 108

আর স্ট্রিং, আসলে বন্ধু নয় :)

eval(parse(t=sub("U","<",sub("D",">",gsub("(.*),(.*),(.).*","cat(if(\\1\\3=\\2)'WAIT\n'else'STOP\n')",G)))))

ইনপুট হ'ল অক্ষর ভেক্টর Gতারপরে প্রতিটি স্ট্রিংকে ifমূল্যায়নের মতো একটি স্টেটমেন্টে পরিবর্তন করে।

আমার বিধিবিধানের ব্যাখ্যাটি মিশ্রিত করুন । কয়েকটি অক্ষরের জন্য মূল্য নির্ধারণ করুন।

> G=c(
+     '80,90,UP',
+     '150,100,DOWN',
+     '65,65,UP',
+     '1618,1618,DOWN',
+     '840,1200,DOWN',
+     '54,12,UP',
+     '30,1,UP'
+ )
> eval(parse(t=sub("U","<",sub("D",">",gsub("(.*),(.*),(.).*","cat(if(\\1\\3=\\2)'WAIT\n'else'STOP\n')",G)))))
WAIT
WAIT
WAIT
WAIT
STOP
STOP
STOP
>

কেন শেষ দুটি ফিরে "অপেক্ষা"? তাদের "স্টপ" দেওয়া উচিত।
ওবললে

@ ওবেলে আমি বিধিগুলি ভুল বুঝেছি। উচ্চতর দামের উত্থানের জন্য এটি পরিষ্কার ছিল না। শীঘ্রই ঠিক হয়ে যাবে
মিকিটি

3

রুবি - 89 চর

G.split.map{|a|b,c,d=a.split(?,);puts (b.to_i>=c.to_i)^(e=d[2])&&(b!=c||e)?'STOP':'WAIT'}

RubyFiddle

ব্লুটোরেঞ্জ থেকে সহায়তা!


নতুন সমমানের পরীক্ষার ক্ষেত্রে এটি কি সঠিক? আমিও এরকম কিছু চেষ্টা করেছি, কিন্তু সেই পরীক্ষার ক্ষেত্রে এটি ব্যর্থ হয়েছিল।
ওবেলে

@ ওবেলে তা দেখতে পাননি ... আমার =
আসলটির

অপেক্ষা করুন - আমি নিজেই কেন একটি জটিল কাজটি করেছি =যার পরিবর্তে অনেকগুলি বাইট নিয়েছিলাম যা আমি জানতাম এটিও একটি সম্ভাবনা ছিল ... ঠিক করার সময়!
ওবলে

এই অ্যাকাউন্টের জন্য অ্যাকাউন্ট 1618,1618,DOWN?
nderscore

সম্ভবত আমি বোকা, তবে আমি এই কোডটি পাই না। আমার কাছে মনে হয় যে প্রতিটি লাইনের 3 টি কমা-বিচ্ছিন্ন মানগুলির জন্য এটি 1 ম, 2 য়, এবং 4 র্থ অক্ষর সহ কিছু করে এবং ওয়েট বা স্টপ প্রিন্ট করে? a.split.map{..}প্রিন্ট 3 WAITবা STOPপ্রতিটি ইনপুট লাইনের জন্য ব্যবহার করা । আপনি কি sth করতে চেয়েছিলেন? পছন্দ b,c,d=a.split(?,)? এছাড়াও, !b[3][2]চেয়েও কম b[3]=='UP', তবে আমার মনে হয় এটি হওয়া উচিত b[2]? স্ট্রিংগুলির সাথে তুলনা করতে >=মনোযোগ প্রয়োজন, যেমনটি "9">="77"সত্য। ডিফল্ট ইনপুট লাইন বিভাজক \n, সুতরাং আপনি splitতর্ক ছাড়াই ব্যবহার করতে পারেন । ?\nতুলনায় খাটো '\n'
ব্লুটোরেঞ্জ

3

পাইথন 3, 89 84 82 বাইট

for l in G:a,b,c=l.split(',');print('WSATIOTP'[a==b or(int(a)<int(b))^(c<'U')::2])

ব্যাখ্যা:

for l in G:                                   #For every line in G:
           a,b,c=l.split(',');                #Split the line into three strings.
                              print()         #Print the contained expression.

'WSATIOTP'                                    #'WAIT' and 'STOP' interleaved.
          [                              ::2] #Select every other character.
                or                            #If either expression is true, pick 'WAIT'
           a==b
                  (             )^(     )     #Select 'WAIT' if exactly one is true.
                   int(a)<int(b)              #If first number < second number.
                                   c<'U'      #If c is 'DOWN'

এটা ব্যাখ্যা করতে যত্ন?
হুয়ান কর্টেস

@ জুয়ানকোর্টসের ব্যাখ্যা যুক্ত হয়েছে।
TheNumberOne

1
সুন্দর, আমি এটা ভালবাসি!
হুয়ান কর্টেস

2

মতলব, 100 90 বাইট

আমি যতটা ছোট চাই না - বিশেষত বুলিয়ান থেকে স্ট্রিংগুলিতে রূপান্তরটি খুব দীর্ঘ। আমি অষ্টাভে স্যুইচ করে কয়েকটা বাইট ছাঁটাই করার চেষ্টা করেছি, তবে দৃশ্যত% সি টেক্সটস্ক্যানের জন্য এখনও অক্টোবায় সমর্থিত নয়।

B=textscan(G,'%f,%f,%c%s\n');xor(B{1}>=B{2},B{3}==85);C(a)={'STOP'};C(~a)={'WAIT'};char(C)

ব্যক্তিগতভাবে আমি মনে করি এটি দুর্দান্ত যে এই সমাধানটি এখন পর্যন্ত একমাত্র যা বিভাজন ব্যবহার করে না :)

সম্পাদনা: মূলত পরিস্থিতি সমানভাবে জটিলভাবে সমাধান করা।


এটি আসলে 92 বাইট - ফাংশন কল করার a=আগে আপনি কিছুটা মিস করেছেন xor। তবুও এটি আসলে সঠিক আউটপুট উত্পাদন করে না।
টম কার্পেন্টার

2

জাভাস্ক্রিপ্ট ECMAScript 6, 112 বি

var O="";for(let E of G.split("\n"))[A,B,C]=E.split(","),O+=("U"<C||-1)*(A-B)>0?"STOP\n":"WAIT\n";console.log(O)

শুধুমাত্র ECMAScript 6 সামঞ্জস্যপূর্ণ ব্রাউজারে

ব্যাখ্যা

("U"<C||-1)*(A-B)>0?"STOP\n":"WAIT\n"

এটি সত্যটি ব্যবহার করে যে আমরা যদি 0 জিজ্ঞাসা করি তবে এটি মিথ্যা ফিরে আসবে, সুতরাং আমরা 1 এর জন্য UP, -1 বলতে পারি DOWN। তারপরে আমরা উভয়কে 0 টিরও বেশি অংশের জন্য কাজ করার জন্য বর্তমান মূল্য এবং সর্বোত্তম মূল্যের পার্থক্যের দ্বারা সেই গুণকে বৃদ্ধি করি

শর্ত পূরণ হলে, ফিরে STOPআসুন, অন্যথায় (সমান মান সহ) ফিরুনWAIT

আরও গল্ফ করা দরকার


2

জাভাস্ক্রিপ্ট ( ES6 ), 82 80 79 বাইট

সম্পাদনা: -2 @ জুয়ানকার্টের গুণক পদ্ধতি ব্যবহার করে

সম্পাদনা: -1 গুণটি পদ্ধতি হ্রাস করতে একটি কৌশল ব্যবহার করে

alert(G.replace(/(.+),(.+),(.)+/g,(x,c,o,t)=>(c-o)*~{P:-2}[t]>0?'STOP':'WAIT'))

মন্তব্য করেছে:

alert(                           // alert final output after replacement
    G.replace(/(.+),(.+),(.)+/g, // capture group for sections of each line
                                 // (.)+ captures only the last character
                                 // . doesn't match newlines, so this runs for each line
        (x,c,o,t)=>              // use a function to calculate each replacement string
            (c - o)              // calculate difference, negative for o>c
            *                    // multiply by
            ~{ P: -2 }[t]        // { P: -2 }[t] returns -2 for UP ('P') -2, else undefined
                                 // ~-2 => 1, ~undefined => -1
            > 0                  // if result > 0 (muplication of negatives or positives)
            ? 'STOP' : 'WAIT'    // return corresponding replacement string
    )
)

স্নিপেট ডেমো:

function run(){
    G = input.value;
    /* start solution */
    alert(G.replace(/(.+),(.+),(.)+/g,(x,c,o,t)=>(c-o)*~{P:-2}[t]>0?'STOP':'WAIT'))
    /* end solution */
}
<textarea id="input" cols="25" rows="7">80,90,UP
150,100,DOWN
65,65,UP
1618,1618,DOWN
840,1200,DOWN
54,12,UP
30,1,UP</textarea><br />
<button id="run" onclick="run();">Run</button>

পরিবর্ধন ও পরিবর্তন তালিকা:

// 80
alert(G.replace(/(.+),(.+),(.)+/g,(x,c,o,t)=>(c-o)*(t>'N'||-1)>0?'STOP':'WAIT'))

// 82
alert(G.replace(/(.+),(.+),(.)+/g,(x,c,o,t)=>+c>o&t>'N'|+c<o&t<'P'?'STOP':'WAIT'))

যুক্তি বোঝাতে যত্ন? অসাধারণ লাগছে তবে কী চলছে তা আমার কোনও ধারণা নেই
হুয়ান কর্টেস

@ জুয়ানকোর্টস আমি একটি মন্তব্য করা সংস্করণ যুক্ত করেছি :)
nderscore

চিয়ার্স! যা আমি বুঝতে পারি
হুয়ান কর্টেস

2

সি- 91 বাইট

কারণ সি সেখানে কোথাও থাকতে হবে

"স্টপ" বা "ওয়েট" আউটপুট নির্ধারণ করা আলাদা কিনা তা এখন @ নটকি সংস্করণের সাথে খুব মিল দেখাচ্ছে।

Ungolfed-

main(i,j)
{
    char c[5];
    while(scanf("%i,%i,%s",&i,&j,c)+1)
        puts((j-i)*(*c-70)<0?"STOP":"WAIT");
}

Golfed-

 main(i,j){char c[5];while(scanf("%i,%i,%s",&i,&j,c)+1)puts((j-i)*(*c-70)<0?"STOP":"WAIT");}

পুরানোটি

Ungolfed-

int main()
{
    int i,j;
    char *c="";
    while(scanf("%i,%i,%s",&i,&j,c)+1)
    {
        if(i<j)
        {
            if(*c-68)
                printf("WAIT\n");
            else
                printf("STOP\n");
        }
        if(i>j)
        {
            if(*c-68)
                printf("STOP\n");
            else
                printf("WAIT\n");
        }
        if(i==j)
            printf("WAIT\n");
    }
    return 0;
}

Golfed

#define W printf("WAIT\n");
#define S printf("STOP\n");
int main(){int i,j;char *c="";while(scanf("%i,%i,%s",&i,&j,c)+1){if(i<j){if(*c-68)W else S}if(i>j){if(*c-68)S else W}if(i==j)W}return 0;}

আমি এটি কেটে দেওয়ার চেষ্টা চালিয়ে যাব


এই কোডটি কেবল ক্রাশ হবে। char c[4]পরিবর্তে আপনার প্রয়োজন char *c=""(যা আরও ছোট)।
নটকি 20'15

@ নটকি, প্রকৃতপক্ষে, এটির স্রেফ অপরিবর্তিত আচরণ। একটি ক্রাশ হওয়ার দরকার নেই।
স্পিক্যাট্রিক্স 20'15

@ কুলগুয়ে, কেবলমাত্র 1 বাইটের পঠনযোগ্য স্থানে 5 বাইট লিখে। এমন কোনও ব্যবস্থা আছে যেখানে এটি সেগফল্ট করবে না?
নটকি 20'15

@ নটকি - স্পষ্টতই আমার উইন্ডোজ পিসি যেমন কাজ করেছে!
ইয়ানজট

@ নটকি, দেখুন? TheE- এর সিস্টেমটি সেগফল্ট নিক্ষেপ করল না। এটি কেবল অপরিবর্তিত আচরণ। এক সিস্টেমে কাজ করতে পারে, তবে অন্যটিতে কাজ করবে না। কিছু হতে পারে। কিন্তু কে ভাবে? এটি কোড গল্ফ তাই প্রোগ্রামটির কেবল "কাজ" করা দরকার :) বিটিডাব্লু, এটি char c[5]( \0শেষের জন্য 1 স্থান ) হওয়া উচিত নয় ?
স্পিক্যাট্রিক্স

1

পাইথন 3 - 108 106 102 97 বি

for l in G:a,b,c=l.split(',');s=int(a)-int(b);d=c<'E';print(['WAIT','STOP'][(s<0)*d+(s>0)*(1-d)])

কাজ চলছে...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.