Connection Status:
Competition Arena > CubeStickers
SRM 507 · 2010-11-01 · by ir5 · Simple Search, Iteration
Class Name: CubeStickers
Return Type: String
Method Name: isPossible
Arg Types: (vector<string>)
Problem Statement

Problem Statement

NOTE: This problem statement contains images that may not display properly if viewed outside of the applet.

Fox Ciel has a cube and some colored stickers. You are given a String[] sticker, where the i-th element is the color of the i-th sticker. Ciel wants to choose six of these stickers and apply one on each of the cube's faces. Each pair of adjacent faces must have different colors. Two faces are considered adjacent if they share an edge.

If this is possible, return "YES", otherwise, return "NO" (all quotes for clarity).

Constraints

  • sticker will contain between 6 and 50 elements, inclusive.
  • Each element of sticker will contain between 1 and 10 lowercase letters ('a'-'z'), inclusive.
Examples
0)
{"cyan","magenta","yellow","purple","black","white","purple"}
Returns: "YES"

One of the possible ways is shown in the following picture:

1)
{"blue","blue","blue","blue","blue","blue","blue","blue","blue","blue"}
Returns: "NO"
2)
{"red","yellow","blue","red","yellow","blue","red","yellow","blue"}
Returns: "YES"
3)
{"purple","orange","orange","purple","black","orange","purple"}
Returns: "NO"
4)
{"white","gray","green","blue","yellow","red","target","admin"}
Returns: "YES"
55)
{"xxxxxxxxxc"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxa"
,"xxxxxxxxxb"
,"xxxxxxxxxb"
,"xxxxxxxxxa"
,"xxxxxxxxxa"}
Returns: "NO"

a bit slow? -yes, but a bit strange as the number of iterations inside the last cycle is less.

Submissions are judged against all 193 archived test cases, of which 6 are shown here. Case numbers match the judge’s.

Coding Area

Language: C++17 · define a public class CubeStickers with a public method string isPossible(vector<string> sticker) · 193 test cases · 2 s / 256 MB per case

Submitting as anonymous